我有一个看起来像这样的Json:
{
"Title:": "StructureTitle",
"Description:" : "StructureDescription",
"Contents": "[{"Key":"FirstKey","Value":"FirstValue"},{"Key":"SecondKey","Value":"SecondValue"},{"Key":"ThirdKey","Value":"ThirdValue"}]"
}
而且我无法弄清楚如何反序列化它,因为"内容"部分正在指定什么是键,什么是值。
我以这种方式定义我的类
public class Info
{
public string Title{ get; set; }
public string Description{ get; set; }
public Contents Contents{ get; set; }
}
[DataContract]
public class Contents {
[DataMember(Name = "FirstKey")]
public string FirstKey{ get; set; }
[DataMember(Name = "SecondKey")]
public string SecondKey{ get; set; }
[DataMember(Name = "ThirdKey"]
public string ThirdKey { get; set; }
}
我正在尝试以这种方式执行反序列化:
var text = "{ "Title:": "StructureTitle", "Description:" : "StructureDescription", "Contents": "[{"Key":"FirstKey","Value":"FirstValue"},{"Key":"SecondKey","Value":"SecondValue"},{"Key":"ThirdKey","Value":"ThirdValue"}]" }"
JToken token = JObject.Parse(text);
var x = token.SelectToken("Contents");
Contents c = x.ToObject<Contents>();
这是我得到的错误:Newtonsoft.Json.JsonSerializationException: '转换值时出错
var text = "{ "Title: ": "StructureTitle", "Description: " : "StructureDescription", "Contents": [{ "Key":"FirstKey","Value":"FirstValue"},{ "Key":"SecondKey","Value":"SecondValue"},{ "Key":"ThirdKey","Value":"ThirdValue"}] }";
JToken token = JObject.Parse(text);
var x = token.SelectToken("Contents");
Contents c = x.ToObject<Contents>();