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

时间:2012-04-13 06:08:13

标签: c# json restsharp

我试图使用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"
},  

我需要使用Property的summery和customfield_11414创建一个对象 但我只需要它们的价值。不是整个JSON对象

2 个答案:

答案 0 :(得分:10)

您可以同时使用Json.Netdynamic关键字

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

答案 1 :(得分:1)

您有几个选择。一种是不尝试反序列化所有内容,而只是使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,您可以根据需要进行转换,或进一步解析。