c# - 用json.net c#反序列化json不输出所有字段
问题描述
有没有这样的json格式的答案
{
"id": "161e6e624c78acfd7fd783844bc0adfa38c5135feb9170c9e8a05094ac41f11a1d87552aae3cd6544cecf7f3b8162edee7c01f5785c14f5ed11e1eee14e28619",
"name": "Geth/genom.minerpool.net/v1.8.0-unstable-8ec3861d/linux-amd64/go1.9.2",
"caps": [
"eth/62",
"eth/63"
],
"network": {
"localAddress": "192.168.1.3:8298",
"remoteAddress": "213.32.53.162:31337"
},
"protocols": {
"eth": {
"version": 63,
"difficulty": 121712103143555595,
"head": "0x7686acff7fa7560013bb6c7997c42d7f6adb0514277edbb7418e362b8e32bca2"
}
}
},
对请求进行脱盐的程序的代码。
public class per
{
//[JsonProperty("network")]
public string localAddress { get; set; }
public string id { get; set; }
public string name { get; set; }
}
private void button2_Click(object sender, EventArgs e)
{
var peer = JsonConvert.DeserializeObject<List<per>>(richTextBox1.Text.ToString());
dataGridView2.DataSource = peers.Result;
}
问题是它没有在localAddres的datagridview中放一个空白字段。我究竟做错了什么?
解决方案
JSON 被反序列化为一个集合,而它是一个对象。
使用另一个答案中定义的类,事件处理程序应按如下方式完成。
private async void button2_Click(object sender, EventArgs e) {
var enbode = new Nethereum.Geth.Web3Geth("http://127.0.0.1:8545");
var peers = await enbode.Admin.Peers.SendRequestAsync();
richTextBox1.Text = peers.ToString();
var peer = JsonConvert.DeserializeObject<Example>(richTextBox1.Text);
dataGridView2.DataSource = new [] { peer };
}
推荐阅读
- pytorch - 检查pytorch中state_dict的参数数量
- python - 将两个窗口结果放到具有两个选项卡的窗口中
- ignite - 点燃队列持久性
- mongodb - 查找 mongoDB 对象
- android - 日期和时间在警报管理器中不起作用
- vhdl - 将字节转换为 std_logic_vector
- daemon - 查询(属于“PhabricatorDaemonLogQuery”类)过热:检查了 10 多个原始行但未找到 1 个可见对象
- scala - 在不使用 sbt 的情况下使用“import org.apache.spark.SparkContext”编译 scala 代码
- python - 熊猫转换列表的不一致行为
- c - 如何为我的 Linux 找到可用的 POSIX 系统调用 api 列表?