我有一个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值而是存储原始字符串。
即我希望序列化后的Baz
字符串值为:
“[{\” 压力\ “:9001,\” ServesDrinks \ “:真},{\” 压力\ “:0,\” ServesDrinks \ “:假}]”
我正在使用Json.Net,但还没有设法弄清楚如何做到这一点。
在理想的情况下,我只想在保留原始json的Baz
属性上添加一个魔术属性。
我在这里看到一个非常相似的问题: Partially deserialize with JSON.NET, keeping some fields raw
但我确实理解如何采用JObject
方法。
(如果有任何帮助,我知道我想保留的数据是一个列表)
感谢任何帮助!
答案 0 :(得分:2)
根据对其他问题的回答,似乎JSON.Net中针对此类案例的解决方案是使用相应的J*
类型并使用他们的ToString()
和Parse()
使用JSON字符串的方法。
对于JS列表,相应的类型似乎是JArray
,而不是JObject
,它用于{}
样式的Javascript对象。
请注意,我对JSON.Net知之甚少,也许有一个不同的解决方案可以避免在任何地方使用Parse()
和ToString()
。对该库有更好了解的人可能会给出更好的答案。