c# - 从 JSON 响应中删除元素

标签 c# json

我有一个 JSON 字符串,我希望能够从中删除一些数据。

以下是 JSON 响应:

{
  "ResponseType": "VirtualBill",
  "Response": {
    "BillHeader": {
      "BillId": "7134",
      "DocumentId": "MN003_0522060",
      "ConversionValue": "1.0000",
      "BillType": "Vndr-Actual",
      "AccountDescription": "0522060MMMDDYY",
      "AccountLastChangeDate": "06/07/2016"
    }
  },
  "Error": null
}

从上面的 JSON 响应中,我希望能够删除 "ResponseType": "VirtualBill", 部分如下所示:

{
  "Response": {
    "BillHeader": {
      "BillId": "7134",
      "DocumentId": "MN003_0522060",
      "ConversionValue": "1.0000",
      "BillType": "Vndr-Actual",
      "AccountDescription": "0522060MMMDDYY",
      "AccountLastChangeDate": "06/07/2016"
    }
  },
  "Error": null
}

有没有在 C# 中执行此操作的简单方法?

最佳答案

使用 Json.Net ,您可以像这样删除不需要的属性:

JObject jo = JObject.Parse(json);
jo.Property("ResponseType").Remove();
json = jo.ToString();

fiddle :https://dotnetfiddle.net/BgMQAE


如果您要删除的属性嵌套在另一个对象中,那么您只需使用SelectToken 导航到该对象即可。然后从那里删除不需要的属性。

例如,假设您要删除嵌套在 BillHeader 中的 ConversionValue 属性,它本身嵌套在 Response 中.你可以这样做:

JObject jo = JObject.Parse(json);
JObject header = (JObject)jo.SelectToken("Response.BillHeader");
header.Property("ConversionValue").Remove();
json = jo.ToString();

fiddle :https://dotnetfiddle.net/hTlbrt

关于c# - 从 JSON 响应中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38054986/

相关文章:

php - 在 MySQL 中插入多个 JSON 列(使用 API)

android - 空指针异常 - getCount

c# - Vista - GetForegroundWindow 返回的不是正确的进程 ID,而是父进程 ID

c# - 小数位和千位的字符串格式

c# - 重试 C# HttpClient 不成功的请求和超时

python - Django:如何将数据库中的数据以及外键实体以 JSON 形式返回给用户?

sql - 从嵌套集生成 JSON(perl、sql、jquery)

javascript - 如何使用变量值将 List<object> 序列化为 JSON?

c# - 在订阅中调用 Task.Factory.StartNew(async () => {}) 通常是可疑的吗?

c# - 引用的程序集返回 None 作为 ProcessorArchitecture