You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory Lookup读取JSON时键不区分大小写问题咨询

问题原因

ADF Lookup活动默认采用不区分大小写的JSON键解析逻辑,这是因为其底层依赖的.NET相关JSON解析组件默认使用不区分大小写的字典存储键值对,导致G_key1和g_key1被识别为同一键,后出现的键值会覆盖前者。尽管JSON规范明确键区分大小写,但ADF Lookup的默认配置并未遵循这一严格规则。

解决建议与方案

方案1:改用Copy活动+JSON数据集大小写保留配置

这是最直接的解决方式,无需额外代码开发:

  • 创建或编辑JSON数据集,进入格式设置面板,勾选Preserve case选项,确保读取JSON时保留键的大小写。
  • 使用Copy活动将Blob中的JSON数据直接加载到目标数据库表,或先复制到ADLS Gen2等中间存储,再通过Lookup活动读取处理后的文件。

方案2:通过Azure Function自定义解析JSON

如果必须使用Lookup活动,可借助Azure Function实现严格区分大小写的JSON解析:

  • 编写Azure Function,使用区分大小写的JSON解析库(如Newtonsoft.Json默认支持,或System.Text.Json设置JsonSerializerOptions.PropertyNameCaseInsensitive = false)读取Blob中的JSON文件,保留所有大小写不同的键。
  • 示例C#代码片段:
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Extensions.Http;
    using Microsoft.AspNetCore.Http;
    using Newtonsoft.Json;
    using Azure.Storage.Blobs;
    
    public static class CaseSensitiveJsonParser
    {
        [FunctionName("CaseSensitiveJsonParser")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            var requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            var blobUri = requestBody; // 传入Blob文件的URI
            var blobClient = new BlobClient(new Uri(blobUri));
            var jsonContent = await blobClient.DownloadContentAsync();
            
            // 使用Newtonsoft.Json默认区分大小写的解析
            var parsedJson = JsonConvert.DeserializeObject<dynamic>(jsonContent.Value.Content.ToString());
            return new OkObjectResult(parsedJson);
        }
    }
    
  • 在ADF中添加Web活动调用该Azure Function,获取保留大小写的JSON结果后,再通过后续活动处理或加载到数据库。

方案3:使用Data Flow活动处理

Data Flow支持严格保留JSON键的大小写,适合复杂数据转换场景:

  • 创建Data Flow,源选择Blob存储的JSON数据集,在源的Options面板中勾选Preserve case。
  • 添加必要的转换操作后,通过Sink组件将数据直接写入目标数据库表,或输出为保留大小写的JSON文件供Lookup活动使用。

内容的提问来源于stack exchange,提问作者Vrishab Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:07:27