C# 如何反序列化嵌套的 Json 数据
C# How to deserialize nested Json data
我有一个 Json 数据,其中包含两个字段,即 ID 和内容。内容将存储另一个 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]的值。内容等于{"Json2":[{"test1":"234","test2" :"456"}]} 反序列化后。但是上面的代码提示异常"Invalid object passed in, ':' or '}' expected."。
如上所述,您的 json 无效。使用 \
、
转义引号
var jsonData=@"{
""Json1"": [{
""ID"": ""123"",
""Content"": ""{\""Json2\"":[{\""test1\"": \""234\"",\""test2\"":\""456\""}]}""
}]
}";
这里有一个使用 NewtwonJson 反序列化的例子
var instance = JsonConvert.DeserializeObject<testing>( jsonData);
我有一个 Json 数据,其中包含两个字段,即 ID 和内容。内容将存储另一个 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]的值。内容等于{"Json2":[{"test1":"234","test2" :"456"}]} 反序列化后。但是上面的代码提示异常"Invalid object passed in, ':' or '}' expected."。
如上所述,您的 json 无效。使用 \
、
var jsonData=@"{
""Json1"": [{
""ID"": ""123"",
""Content"": ""{\""Json2\"":[{\""test1\"": \""234\"",\""test2\"":\""456\""}]}""
}]
}";
这里有一个使用 NewtwonJson 反序列化的例子
var instance = JsonConvert.DeserializeObject<testing>( jsonData);