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

C#使用Newtonsoft库实现嵌套JSON数组转目标结构方案

基于Newtonsoft.Json的C# JSON结构转换实现

直接使用Newtonsoft.Json内置的LINQ to JSON接口即可完成该结构转换,无需额外依赖其他工具,核心逻辑是将内层存储的FieldName/Value键值对映射为目标对象的属性,转换过程会自动保留字段值的原始类型,不会出现数字、日期类值被强制转成字符串的问题。

完整实现代码

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

// 传入待转换的源JSON字符串
string sourceJson = @"[
    [
        {
            ""FieldName"": ""Id"",
            ""Value"": 1234
        },
        {
            ""FieldName"": ""FieldName1"",
            ""Value"": 2722
        },
        {
            ""FieldName"": ""FieldName2"",
            ""Value"": ""2022-06-21T13:03:11.5958542Z""
        },
        {
            ""FieldName"": ""FieldName3"",
            ""Value"": ""XYZ""
        }
    ]
]";

// 解析源JSON为二维数组结构
JArray sourceArr = JArray.Parse(sourceJson);
JArray targetArr = new JArray();

foreach (JArray fieldGroup in sourceArr)
{
    JObject targetObj = new JObject();
    foreach (JObject field in fieldGroup)
    {
        // 以FieldName值为属性名,Value值为属性值构建目标对象
        string propName = field["FieldName"].ToString();
        JToken propValue = field["Value"];
        targetObj.Add(propName, propValue);
    }
    targetArr.Add(targetObj);
}

// 序列化得到最终目标JSON,格式化参数可按需调整
string targetJson = targetArr.ToString(Formatting.Indented);

转换结果验证

上述代码执行后输出的targetJson完全匹配目标结构要求:

[
  {
    "Id": 1234,
    "FieldName1": 2722,
    "FieldName2": "2022-06-21T13:03:11.5958542Z",
    "FieldName3": "XYZ"
  }
]

适配说明

  • 如果源JSON外层数组包含多组内层字段集合,该逻辑会自动生成多个对应的目标对象,无需修改代码
  • 支持任意动态FieldName字段,不需要提前定义固定的C#实体类做映射
  • 嵌套对象、数组类的复杂Value值也可以正常转换,不会出现结构丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:48:19