JsonConvert,数字作为项目名称

时间:2018-03-15 11:35:40

标签: json

我从ETH中提取了下面的json。所以这是一个有效的json。

"networks": {
  "18": {
    "address": "0x478a2763d239b60206006437f5154dad59fef909"
  }
}

尝试使用以下方法解析:

dynamic Obj = JsonConvert.DeserializeObject(".... json string .....");

Obj.Networks.18.address;  // Error

Obj.SelectToken("networks.18.address"); // Null

我甚至无法编译,因为标签名称不能以数字开头。

我可以知道访问该地址的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以创建一个代表数据的模型

public class RootObject {
    public Dictionary<string, network> networks { get; set; }
}

public class network {
    public string address { get; set; }
}

并使用它来访问所需的信息

var data = JsonConvert.DeserializeObject<RootObject>(".... json string .....");
var address = data.networks["18"].address;

由于语法冲突,使用字符串Dictionary作为能够访问键值对的解决方法。