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

C#如何将嵌套JSON字符串插入到现有JSON字符串中

C# 实现嵌套JSON插入合并方案

处理这类JSON结构动态合并的场景,直接使用Newtonsoft.Json(Json.NET)实现成本最低,无需提前定义对应C#强类型模型即可灵活修改JSON节点。

前置准备

通过NuGet包管理器给项目安装Newtonsoft.Json依赖。

实现代码

首先引入所需命名空间:

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

核心逻辑代码:

// 两个原始输入JSON字符串
string productJson = @"{
 ""Products"":[
  {
   ""productId"":1,
   ""productName"":""product1""
  } 
 ]
}";

string brandJson = @"{
 ""Brand"":[
  {
   ""brandId"":1,
   ""brandName"":""brand1""
  } 
 ]
}";

// 将两个JSON字符串解析为可操作的动态JObject对象
JObject productObj = JObject.Parse(productJson);
JObject brandObj = JObject.Parse(brandJson);

// 定位到Products数组下需要插入Brand节点的产品对象
// 单条数据直接取索引0即可,多条数据可遍历数组
JToken targetProduct = productObj["Products"][0];
// 把Brand节点挂载到目标产品对象下
targetProduct["Brand"] = brandObj["Brand"];

// 输出格式化后的最终JSON
string finalResult = productObj.ToString(Formatting.Indented);

运行后finalResult的内容和给出的期望输出完全一致。

扩展场景处理

如果Products数组下包含多个产品,需要给所有产品都挂载Brand信息,把单条节点取值的逻辑替换为循环遍历即可:

foreach (JObject product in productObj["Products"].Children<JObject>())
{
    product["Brand"] = brandObj["Brand"];
}

注意:示例中部分属性名(如productId、brandId)未添加双引号,属于不符合规范的JSON格式,实际传入解析的字符串请保证为标准合法JSON,否则会触发解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:27:29