如何使用 json 内容反序列化 json 属性

How to deserialize json property with json content

我有这个json:

{
"Entity":"MP3",
"Body":"{"name":"COKE","category":"CANDIES","sales":123.0}"
}

正文 属性 包含 json 内容。如何反序列化它?我正在使用 NewtonJson 并收到此错误:

After parsing a value an unexpected character was encountered: n. Path 'Body', line 1,

JsonConvert.DeserializeObject<ClientJsonData>(jsonDecode)

public class ClientJsonData
{
    public string Body { get; set; }
    public string Entity { get; set; }
}

我的根 class 包含 Entity 和 Body 字符串属性

您的输入无效JSON。如果你想让 body 成为一个对象,它需要看起来像这样。

{
    "Entity":"MP3",
    "Body": {"name":"COKE","category":"CANDIES","sales":123.0}
}

或者这个,如果你想让正文成为一个字符串,它会转义引号

{
    "Entity":"MP3",
    "Body": "{\"name\":\"COKE\",\"category\":\"CANDIES\",\"sales\":123.0}"
}

由于您的 .NET 对象有两个字符串,看来您需要后者。

完成后,您可以像往常一样使用 JSON.NET API

var myObject = JsonConvert.DeserializeObject<ClientJsonData>(myInput);