首页 > 解决方案 > 如何替换动态 JSON 中的属性值?

问题描述

我正在读取我的 json 文件并尝试替换属性值。JSON文件如下。

{
  "fields": {
    "summary": "summaryValue",
    "project": {
      "key": "projectValue"
    },
    "priority": {
      "name": "priorityValue"
    },

    "Requestor": {
      "name": "RequestorValue"
    },
    
    "issue": {
      "name": "issueValue"
    },
    "labels": "LabelValue",
    "customfield_xyz": "customfield_xyzValue"
  }
}

如何替换 fields 属性中每个项目的值?例如:

{"fields": {
    "summary": "NewsummaryValue",
    "project": {
      "key": "NewprojectValue"
    },
    "priority": {
      "name": "NewpriorityValue"
    }
}
}

下面是解析我的 json 文件的代码,

StreamReader r = new StreamReader(filepath);
                var jsondata = r.ReadToEnd();
                var jobj = JObject.Parse(jsondata);
 foreach (var item in jobj.Properties())
                {
                    \\replace code
                }

标签: c#jsonresponse

解决方案


我不知道你到底想要什么。但是我根据需要更改了代码片段中的 json 信息。

dynamic dataCollection = JsonConvert.DeserializeObject<dynamic>(jsonData);
          
string summary = dataCollection["fields"]["summary"];
string project = dataCollection["fields"]["project"]["key"];
string priority = dataCollection["fields"]["priority"]["name"];

dynamic json = new JObject();
json.summary = summary;
json.project = project;
json.priority = priority;

dynamic jsonRoot = new JObject();
jsonRoot.fields = json;

Console.WriteLine(jsonRoot.ToString());

输出:

在此处输入图像描述


推荐阅读