【发布时间】:2017-11-03 16:06:34
【问题描述】:
我有以下包含未命名数组和其他命名属性的 json。我想知道如何使用 Newtonsoft.Json 将其反序列化为一个类。
{
"message": "success",
[
{
"timestamp": 1509723862,
"tid": 84823616,
"price": "7344.7",
"amount": "0.36108123",
"exchange": "bitfinex",
"type": "sell"
},
{
...
}
]
}
我知道我可以使用反序列化数组 serializer.DeserializeObjectList >(serializedObject),但由于json包含其他属性,所以不是json-array字符串。
在下面的类中,我是否可以使用任何配置来告诉 Newtonsoft.Json 将数组反序列化为列表,并将“消息”属性反序列化为字符串:
public class Response
{
public string Message {get;set;}
public List<ResponseItem> ResponseItems {get;set;}
}
public class ResponseItem {
string timestamp {get;set;}
(...)
}
【问题讨论】:
-
你为什么要解析无效的 JSON?你不能解决它吗?
-
我想我误解了这个问题。实际上,它总是给我一个有效的 json。如果我问api.bitfinex.com/v1/trades/BTCUSD,它会返回一个有效的 json 数组。如果我请求api.bitfinex.com/v1/trades/BTCUSDxxx,它会再次给我一个有效的 json,但这次是不同的。我想要做的是只有一个类(包含两个响应)。不确定是否可行。
-
那个json 是 无效的,把它放到jsonlint.com 就可以看到了。您不能反序列化无效的 json。您的第一步应该是更正 json
标签: c# json serialization