You need to enable JavaScript to run this app. C# Azure Function对接Snowflake如何转换JSON为指定嵌套数组格式
优惠活动
大模型
产品
解决方案
定价
更多

C# Azure Function对接Snowflake如何转换JSON为指定嵌套数组格式

C# 实现JSON格式转换适配Snowflake响应要求

实现方案

下面分两种常用的JSON处理库给出可直接运行的代码:

方案1:使用.NET 内置的System.Text.Json(适用于.NET Core 3.0+ / .NET 5+ 版本)

无需额外安装NuGet包,直接使用原生API即可完成转换:

using System.Text.Json;
using System.Collections.Generic;

// 这里替换为你现有接口返回的原始JSON字符串
string originalJson = "{\"access_token\": \"access token value here\" , \"user\": \"user_val\"}";

// 解析原始JSON
using JsonDocument originalDoc = JsonDocument.Parse(originalJson);
JsonElement originalData = originalDoc.RootElement;

// 构造Snowflake要求的结构
var responseObj = new
{
    data = new List<object[]>
    {
        new object[] { 0, originalData }
    }
};

// 序列化为最终输出的JSON,WriteIndented控制格式化输出,生产环境可设为false减小体积
string finalJson = JsonSerializer.Serialize(responseObj, new JsonSerializerOptions { WriteIndented = true });

方案2:使用Newtonsoft.Json(Json.NET,适用于所有.NET版本)

如果你的项目用的是旧版.NET Framework,或者已经依赖了Newtonsoft.Json,可使用该方案:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;

// 这里替换为你现有接口返回的原始JSON字符串
string originalJson = "{\"access_token\": \"access token value here\" , \"user\": \"user_val\"}";

// 解析原始JSON
JObject originalData = JObject.Parse(originalJson);

// 构造Snowflake要求的结构
var responseObj = new
{
    data = new JArray
    {
        new JArray(0, originalData)
    }
};

// 序列化为最终输出的JSON
string finalJson = JsonConvert.SerializeObject(responseObj, Formatting.Indented);

补充说明

  • 如果你的现有接口返回的是强类型对象,不需要先转成JSON字符串再解析,直接把对象填入数组的第二个位置即可,性能更高。例如你有个TokenResponse类对应原始返回结构,直接写new object[] {0, 你的TokenResponse实例}即可。
  • 如果你需要返回多行数据,只需往data数组中按顺序添加元素即可,行号从0开始依次累加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:12:03