我有以下包含未命名数组和其他命名属性的json。我想知道如何使用Newtonsoft.Json将其反序列化为类。
{
"message": "success",
[
{
"timestamp": 1509723862,
"tid": 84823616,
"price": "7344.7",
"amount": "0.36108123",
"exchange": "bitfinex",
"type": "sell"
},
{
...
}
]
}
我知道我可以使用反序列化数组 serializer.DeserializeObject< 列表<响应> >(serializedObject),但由于json包含其他属性,因此它不是json数组字符串。
是否有任何配置可用于告诉Newtonsoft.Json将数组反序列化为List,并且'消息'属性为字符串,在下面的类中:
public class Response
{
public string Message {get;set;}
public List<ResponseItem> ResponseItems {get;set;}
}
public class ResponseItem {
string timestamp {get;set;}
(...)
}
答案 0 :(得分:1)
JSON不能在同一级别上同时拥有未命名的数组和命名值。 JSON无效。一切都是键控的,或者它是一个无键的数组。不能兼得。
答案 1 :(得分:0)
我认为联合两个Json并不是一个好主意。 使用你自己的反序列化器并传递你的两个Json:
<div class="row">
<div class="large-12 columns">
<div class="my-custom-block">
MY CUSTOM BLOCK ==> Please extend to right edge of viewport
</div>
</div>
</div>
并使用它:
public static class ResponseDeserializer
{
public static Response Deserialize(string psMessage, string psResponeItems)
{
dynamic loMessage = JsonConvert.DeserializeObject(psMessage);
return new Response()
{
Message = loMessage.message,
ResponseItems = JsonConvert.DeserializeObject<List<ResponseItem>>(psResponeItems)
};
}
}