[英]How to parse a json object array containing mixed primitive types using DataContractJsonSerializer?
[英]Most performant way to parse strange JSON containing arrays of mixed types?
我正在通過WebSocket讀取數據,並且數據以有效JSON的形式返回,但格式奇怪。
這是返回的數據的示例:
[1002,null,[98,"0.00011972","0.00012097","0.00011972","-0.16635331","38.03938952","305130.84018577",0,"0.00014363","0.00011168"]]
我如何使用Json.NET將其變成C#中格式良好的類?
我理想的班級看起來像這樣:
class Message
{
int MessageId { get; set; }
int? MessageVal { get; set; }
Payload Payload { get; set; }
}
class Payload
{
int PayloadId { get; set; }
string Item1 { get; set; }
string Item2 { get; set; }
...
string Item8 { get; set; }
}
如何才能做到這一點? 硬模式:高效而快速
謝謝!
如果您無法控制返回給您的數據的形狀,則可以使用以下方法:
類定義:
public class Message
{
public int MessageId { get; set; }
public int? MessageVal { get; set; }
public Payload Payload { get; set; }
}
public class Payload
{
public int PayloadId { get; set; }
public string[] Items { get; set;}
}
反序列化:
var json = @"[1002,null,[98,""0.00011972"",""0.00012097"",""0.00011972"",""-0.16635331"",""38.03938952"",""305130.84018577"",0,""0.00014363"",""0.00011168""]]";
var data = JArray.Parse(json);
var message = new Message()
{
MessageId = data[0].ToObject<int>(),
MessageVal = data[1].ToObject<int?>(),
Payload = new Payload()
{
PayloadId = data[2][0].ToObject<int>(),
Items = data[2].Skip(1).Select(x => x.ToString()).ToArray()
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.