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);