JSON.net无需架构反序列化JSON

3

我有一些JSON:

{
    "739c39e": [7866679, 31.96051, 117.13700, 310, 30100, 408, 20515, 2955, "A319", "B-6429", 1440504861, "SHA", "XIY", "MU2168", 0, 0, "CES2168", 0],   
    "739d433": [5242971, 51.46741, -0.48536, 270, 0, 16, 0, 2529, "A320", "T7-MRD", 1440504861, "LHR", "BEY", "ME202", 1, 0, "MEA202", 0]
}

我正在尝试反序列化这个内容,但是遇到了一些困难。

我已经尝试过:

 var definition = new { a = "", b = "", c = "", d = "", e = "", f = "", g = "", h = "", i = "", j = "", k = "", l = "", m = "", n = "", o = "", p = "", q = "", r = "" };
 var jsonData = @File.ReadAllText(@filepathToData);
 dynamic deserializedData = JsonConvert.DeserializeAnonymousType(jsonData, definition);

我从未想过那会起作用,因为JSON中没有“定义”。 我还尝试了JArray.Parse(jsonData);的方式,但是什么也没得到。

我还尝试了JsonConvert.DeserializeObject(jsonData);,但没有返回任何内容......或者至少我无法使用Visual Studio(2015)检查返回的对象。

有人有什么想法吗?

如果这对Unity3D有影响,我正在使用它。


1
你的数据是一个字典,但你的定义是一个数组。所以也许可以将其更改为类似这样的内容: var definition = new Dictionary( string key, new{a = "", b......} - Edgaras
2个回答

4
您可以尝试这个。
var o = JsonConvert.DeserializeObject<Dictionary<string, object[]>>(json);
o.Dump();

不错,谢谢!@Edgaras 的想法是正确的! - pookie

2
您可以将其反序列化为动态对象,方法如下:
dynamic o = JsonConvert.DeserializeObject(json);
Console.WriteLine(o["739c39e"]);
Console.WriteLine(o["739c39e"][3]); // output: 310

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接