我正在获取HttpResponse并尝试通过以下方式反序列化它:
response = (HttpWebResponse)request.GetResponse();
Stream objStream = response.GetResponseStream();
BinaryReader breader = new BinaryReader(objStream);
byte[] buffer = breader.ReadBytes((int)response.ContentLength);
格式为MsgPack。如果我调用以下代码,它将像这样为我提供JSON:
var unpackKNN = MessagePack.MessagePackSerializer.ToJson(buffer);
Json
{
"__schema":{
"__level0":"result|status",
"__level1":"token|status|total|amount|details|id|name|category|cat|group",
"__level2":"method|code|timestamp|result"
},
"data":[
"__level0",
[
"__level1",
"abcd",
"true",
100,
200,
"xyz",
12345,
"Giraffe",
"1",
"One",
"First"
],
[
"__level2",
"request",
"SUCCESS",
15000000000,
"Success"
]
]
}
如何继续将其反序列化为JSON数组或动态对象?我需要编写适合消息结构的解析器吗?
希望对此有所帮助。
答案 0 :(得分:1)
您可以使用Newtonsoft.Json nuget中的JsonConvert.DeserializeObject方法。
请注意,它有几个重载,一个非通用重载,它将ur json反序列化为.Net对象,以及一个通用重载,将尝试将json转换为您创建的任何类型