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

如何在C#中使用LINQ修改JSON或匿名对象的键名

使用LINQ to JSON修改JSON键名

没问题,我来帮你搞定用LINQ修改JSON键名的需求。我们可以借助Newtonsoft.Json(也就是Json.NET)的LINQ to JSON API来轻松实现,具体步骤如下:

1. 先引用必要的命名空间

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

2. 完整的处理代码示例

// 你的原始JSON字符串
string originalJson = @"{""gstin"":""27GSPMH0411G1Z1"",""fp"":""012018"",""gt"":0,""cur_gt"":0,""cdnur"":[{""sply_ty"":""INTER"",""diff_percent"":0.0,""rt"":45.0,""typ"":""OE"",""etin"":"""",""pos"":""24"",""txval"":-13000.0,""iamt"":-10000.0,""csamt"":0.0}]}";

// 将JSON字符串解析为可操作的JObject对象
JObject jsonObj = JObject.Parse(originalJson);

// 取出"cdnur"对应的内容(这里是一个JArray)
JToken cdnurContent = jsonObj["cdnur"];

// 移除原来的"cdnur"键
jsonObj.Remove("cdnur");

// 添加新的键名(比如替换成"newCdnur"),并把原来的内容赋值过去
jsonObj.Add("newCdnur", cdnurContent);

// 转换回格式化后的JSON字符串(带缩进更易读)
string modifiedJson = jsonObj.ToString(Formatting.Indented);

3. 代码逻辑说明

  • 先通过JObject.Parse把JSON字符串转成可操作的对象,这是LINQ to JSON的核心操作入口;
  • 先保存旧键对应的值,再删除旧键,最后用新键名重新添加值——这样就完成了键名的替换;
  • 如果你需要替换成其他名称,只需要修改jsonObj.Add里的第一个参数即可,比如改成"updatedCdnur"或者你想要的任何名称。

4. 修改后的JSON示例(以"newCdnur"为新键名)

{
  "gstin": "27GSPMH0411G1Z1",
  "fp": "012018",
  "gt": 0,
  "cur_gt": 0,
  "newCdnur": [
    {
      "sply_ty": "INTER",
      "diff_percent": 0.0,
      "rt": 45.0,
      "typ": "OE",
      "etin": "",
      "pos": "24",
      "txval": -13000.0,
      "iamt": -10000.0,
      "csamt": 0.0
    }
  ]
}

如果你的项目还没安装Newtonsoft.Json,可以通过NuGet安装:在NuGet包管理器里搜索Newtonsoft.Json安装,或者用命令行:

  • .NET Framework:Install-Package Newtonsoft.Json
  • .NET Core/.NET 5+:dotnet add package Newtonsoft.Json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:03:02