将 JSON 对象反序列化为 C# 对象

本文关键字:对象 反序列化 JSON | 更新日期: 2023-09-27 18:31:03

我试图使用RestSharp读取一些json数据。

但是我在读取 json 对象时遇到了一些问题。我有这个责任:

expand: "html",
self: "<url>/INCIDENT-447",   
key: "INCIDENT-447",
fields: {
  customfield_11414: {
  name: "Corrective Measures",
  type: "com.atlassian.jira.plugin.system.customfieldtypes:textarea"
},
  summary: {
  name: "summary",
  type: "java.lang.String",
  value: "BLA BLA BLA"
},  

我需要创建一个带有属性的夏季和customfield_11414的对象但我只需要它们的价值。不是整个 JSON 对象

将 JSON 对象反序列化为 C# 对象

您可以将 Json.Net 和dynamic关键字一起使用

dynamic dynObj = JsonConvert.DeserializeObject(json);
Console.WriteLine(dynObj.fields.customfield_11414.name + " " + 
                  dynObj.fields.summary.value);

你有几个选择。一种是不要尝试反序列化所有内容,而只是使JSON可用于LINQ/XPATH样式搜索。这是使用 Json.NET:

var json = " ... "; // your json here
var o = JObject.Parse(json);
var summary = o["summary"];
var customfield_11414 = o.SelectToken("customfield_11414");

这些返回所有内容为 JToken ,如果需要,您可以强制转换或进一步解析。