我有一个Json数据,其中包含ID和Content两个字段。内容将存储另一个Json数据。我想只对第一个(外侧)Json进行反序列化。有可能吗?
{"Json1":
[
{"ID":"123",
"Content":"{"Json2":[{"test1":"234","test2":"456"}]}"}
]}
public class testing
{
public List<testing2> Json1 { get; set; }
}
public class testing2
{
public string ID { get; set; }
public string Content { get; set; }
}
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
testing test= serializer.Deserialize<testing>(JsonData);
我希望反序列化后test.Json1 [0] .Content的值等于{“Json2”:[{“test1”:“234”,“test2”:“456”}]}。但是,例外情况是“传入无效对象,':'或'}'。”系统会提示您输入上述代码。
答案 0 :(得分:2)
如上所述,你的json无效。使用\
转义引号,
var jsonData=@"{
""Json1"": [{
""ID"": ""123"",
""Content"": ""{\""Json2\"":[{\""test1\"": \""234\"",\""test2\"":\""456\""}]}""
}]
}";
以下是使用NewtwonJson进行反序列化的示例
var instance = JsonConvert.DeserializeObject<testing>( jsonData);