我有一个JSON字符串,看起来像这样:
{
"Bar": {
"Pressure":42,
"ServesDrinks":false
},
"Baz":[
{
"Pressure":9001,
"ServesDrinks":true
},
{
"Pressure":0,
"ServesDrinks":false
}
]
}
我希望将这个反序列化成一个类,看起来像这样:
public class Foo
{
public Bar Bar { get; set; }
/// <summary>
/// Raw serialized (un-de-serialized) json string of the Baz list
/// </summary>
public string Baz { get; set; }
}
基本上不是对Baz值进行反序列化,而是存储原始字符串。也就是说,我希望在序列化后的字符串值为:
我正在使用Json.Net,但还没有找到如何做到这一点。在理想情况下,我只想在我的属性上放置一个神奇的属性,保留原始json。"[{\"Pressure\":9001,\"ServesDrinks\":true},{\"Pressure\":0,\"ServesDrinks\":false}]"
我在这里看到了一个非常相似的问题: 部分反序列化JSON.NET,保留一些字段的原始值 但我不知道如何使用JObject方法。
(如果有任何帮助,我知道要保留的数据是一个列表)
感谢任何帮助!
JObject
,这是一种通用类型,用于表示JSON对象。您可以使用Baz.ToString()
获取JSON字符串,并使用JObject.parse(aJSONString)
进行赋值。 - Jakub WasilewskiJArray
。我稍微查看了一下JSON.Net的文档,发现JArray
用于处理JS数组,而JObject
仅适用于真正的JS对象({foo: ...}
)。我在下面给出了更详细的答案。 - Jakub Wasilewski