反序列化包含键和值关键字的 Json



我有一个看起来像这样的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>();

相关内容

最新更新