C# 将多个JSON转换为对象JSON.NET
因此,我有一项任务需要我将JSON反序列化为C#对象,并在以后处理它们。请注意,JSON和类文件都很大 我正在解析的示例JSON输出如下所示:C# 将多个JSON转换为对象JSON.NET,c#,json,json.net,C#,Json,Json.net,因此,我有一项任务需要我将JSON反序列化为C#对象,并在以后处理它们。请注意,JSON和类文件都很大 我正在解析的示例JSON输出如下所示: { "systemTime": 1465126640, "timeSinceStartup": 174758912, "neighbors": [ { "ipAddress": "10.0.0.2", "symmetric": true, "multiPointRelay": true,
{
"systemTime": 1465126640,
"timeSinceStartup": 174758912,
"neighbors": [
{
"ipAddress": "10.0.0.2",
"symmetric": true,
"multiPointRelay": true,
"multiPointRelaySelector": false,
"willingness": 3,
"twoHopNeighborCount": 1
}
],
"links": [
{
"localIP": "10.0.0.1",
"remoteIP": "10.0.0.2",
"validityTime": 38810,
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"linkCost": 1024
}
],
"routes": [
{
"destination": "10.0.0.2",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 1,
"rtpMetricCost": 1024,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.3",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 2,
"rtpMetricCost": 2531,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.4",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 3,
"rtpMetricCost": 3555,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.5",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 3,
"rtpMetricCost": 4732,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.6",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 4,
"rtpMetricCost": 6151,
"networkInterface": "mesh0"
}
],
"topology": [
{
"destinationIP": "10.0.0.2",
"lastHopIP": "10.0.0.1",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 0
},
{
"destinationIP": "10.0.0.1",
"lastHopIP": "10.0.0.2",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 283361
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.2",
"linkQuality": 0.940,
"neighborLinkQuality": 0.721,
"tcEdgeCost": 1507,
"validityTime": 283361
},
{
"destinationIP": "10.0.0.2",
"lastHopIP": "10.0.0.3",
"linkQuality": 0.721,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1507,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.4",
"lastHopIP": "10.0.0.3",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.3",
"linkQuality": 0.662,
"neighborLinkQuality": 0.701,
"tcEdgeCost": 2201,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.4",
"linkQuality": 1.000,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1088,
"validityTime": 274952
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.4",
"linkQuality": 0.940,
"neighborLinkQuality": 0.529,
"tcEdgeCost": 2055,
"validityTime": 274952
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.5",
"linkQuality": 0.701,
"neighborLinkQuality": 0.662,
"tcEdgeCost": 2201,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.4",
"lastHopIP": "10.0.0.5",
"linkQuality": 0.607,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1789,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.6",
"lastHopIP": "10.0.0.5",
"linkQuality": 1.000,
"neighborLinkQuality": 0.721,
"tcEdgeCost": 1419,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.6",
"linkQuality": 0.831,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1308,
"validityTime": 269860
}
]
}
List<Gizmo> gizmos JsonConvert.DeserializeObject<List<Gizmo>>(jsonStr);
请注意,拓扑
节点(我不确定术语)存储了多个值。这里的值的数量是一个变量,即它随时间而增加
我为解析此JSON而生成的类如下(使用创建):
任何指针、样本等都会有帮助。
谢谢。试试看:
Gizmo gizmo = JsonConvert.DeserializeObject<Gizmo>(jsonStr);
Gizmo Gizmo=JsonConvert.DeserializeObject(jsonStr);
gizmo类中的拓扑列表不是gizmo列表。
从那里可以得到拓扑列表
如果您有小控件列表,则可以按如下方式获取它们:
{
"systemTime": 1465126640,
"timeSinceStartup": 174758912,
"neighbors": [
{
"ipAddress": "10.0.0.2",
"symmetric": true,
"multiPointRelay": true,
"multiPointRelaySelector": false,
"willingness": 3,
"twoHopNeighborCount": 1
}
],
"links": [
{
"localIP": "10.0.0.1",
"remoteIP": "10.0.0.2",
"validityTime": 38810,
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"linkCost": 1024
}
],
"routes": [
{
"destination": "10.0.0.2",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 1,
"rtpMetricCost": 1024,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.3",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 2,
"rtpMetricCost": 2531,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.4",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 3,
"rtpMetricCost": 3555,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.5",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 3,
"rtpMetricCost": 4732,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.6",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 4,
"rtpMetricCost": 6151,
"networkInterface": "mesh0"
}
],
"topology": [
{
"destinationIP": "10.0.0.2",
"lastHopIP": "10.0.0.1",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 0
},
{
"destinationIP": "10.0.0.1",
"lastHopIP": "10.0.0.2",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 283361
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.2",
"linkQuality": 0.940,
"neighborLinkQuality": 0.721,
"tcEdgeCost": 1507,
"validityTime": 283361
},
{
"destinationIP": "10.0.0.2",
"lastHopIP": "10.0.0.3",
"linkQuality": 0.721,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1507,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.4",
"lastHopIP": "10.0.0.3",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.3",
"linkQuality": 0.662,
"neighborLinkQuality": 0.701,
"tcEdgeCost": 2201,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.4",
"linkQuality": 1.000,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1088,
"validityTime": 274952
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.4",
"linkQuality": 0.940,
"neighborLinkQuality": 0.529,
"tcEdgeCost": 2055,
"validityTime": 274952
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.5",
"linkQuality": 0.701,
"neighborLinkQuality": 0.662,
"tcEdgeCost": 2201,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.4",
"lastHopIP": "10.0.0.5",
"linkQuality": 0.607,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1789,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.6",
"lastHopIP": "10.0.0.5",
"linkQuality": 1.000,
"neighborLinkQuality": 0.721,
"tcEdgeCost": 1419,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.6",
"linkQuality": 0.831,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1308,
"validityTime": 269860
}
]
}
List<Gizmo> gizmos JsonConvert.DeserializeObject<List<Gizmo>>(jsonStr);
列出gizmos JsonConvert.DeserializeObject(jsonStr);
以下是获取所有拓扑的方法:
Gizmo gizmo = JsonConvert.DeserializeObject<Gizmo>(jsonStr);
List<Topology> topologies = gizmo.topology.ToList();
Gizmo Gizmo=JsonConvert.DeserializeObject(jsonStr);
List topologies=gizmo.topology.ToList();
试试看:
Gizmo gizmo = JsonConvert.DeserializeObject<Gizmo>(jsonStr);
Gizmo Gizmo=JsonConvert.DeserializeObject(jsonStr);
gizmo类中的拓扑列表不是gizmo列表。
从那里可以得到拓扑列表
如果您有小控件列表,则可以按如下方式获取它们:
{
"systemTime": 1465126640,
"timeSinceStartup": 174758912,
"neighbors": [
{
"ipAddress": "10.0.0.2",
"symmetric": true,
"multiPointRelay": true,
"multiPointRelaySelector": false,
"willingness": 3,
"twoHopNeighborCount": 1
}
],
"links": [
{
"localIP": "10.0.0.1",
"remoteIP": "10.0.0.2",
"validityTime": 38810,
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"linkCost": 1024
}
],
"routes": [
{
"destination": "10.0.0.2",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 1,
"rtpMetricCost": 1024,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.3",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 2,
"rtpMetricCost": 2531,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.4",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 3,
"rtpMetricCost": 3555,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.5",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 3,
"rtpMetricCost": 4732,
"networkInterface": "mesh0"
},
{
"destination": "10.0.0.6",
"genmask": 32,
"gateway": "10.0.0.2",
"metric": 4,
"rtpMetricCost": 6151,
"networkInterface": "mesh0"
}
],
"topology": [
{
"destinationIP": "10.0.0.2",
"lastHopIP": "10.0.0.1",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 0
},
{
"destinationIP": "10.0.0.1",
"lastHopIP": "10.0.0.2",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 283361
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.2",
"linkQuality": 0.940,
"neighborLinkQuality": 0.721,
"tcEdgeCost": 1507,
"validityTime": 283361
},
{
"destinationIP": "10.0.0.2",
"lastHopIP": "10.0.0.3",
"linkQuality": 0.721,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1507,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.4",
"lastHopIP": "10.0.0.3",
"linkQuality": 1.000,
"neighborLinkQuality": 1.000,
"tcEdgeCost": 1024,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.3",
"linkQuality": 0.662,
"neighborLinkQuality": 0.701,
"tcEdgeCost": 2201,
"validityTime": 277026
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.4",
"linkQuality": 1.000,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1088,
"validityTime": 274952
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.4",
"linkQuality": 0.940,
"neighborLinkQuality": 0.529,
"tcEdgeCost": 2055,
"validityTime": 274952
},
{
"destinationIP": "10.0.0.3",
"lastHopIP": "10.0.0.5",
"linkQuality": 0.701,
"neighborLinkQuality": 0.662,
"tcEdgeCost": 2201,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.4",
"lastHopIP": "10.0.0.5",
"linkQuality": 0.607,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1789,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.6",
"lastHopIP": "10.0.0.5",
"linkQuality": 1.000,
"neighborLinkQuality": 0.721,
"tcEdgeCost": 1419,
"validityTime": 280956
},
{
"destinationIP": "10.0.0.5",
"lastHopIP": "10.0.0.6",
"linkQuality": 0.831,
"neighborLinkQuality": 0.940,
"tcEdgeCost": 1308,
"validityTime": 269860
}
]
}
List<Gizmo> gizmos JsonConvert.DeserializeObject<List<Gizmo>>(jsonStr);
列出gizmos JsonConvert.DeserializeObject(jsonStr);
以下是获取所有拓扑的方法:
Gizmo gizmo = JsonConvert.DeserializeObject<Gizmo>(jsonStr);
List<Topology> topologies = gizmo.topology.ToList();
Gizmo Gizmo=JsonConvert.DeserializeObject(jsonStr);
List topologies=gizmo.topology.ToList();
嘿,非常感谢。您能否详细说明并扩展此答案,以说明如何使用拓扑列表?然后我将它标记为答案,作为我原始问题的一部分。嗨,我扩展了答案,向您展示了如何从gizmo对象获取拓扑列表。希望能有帮助。非常感谢。这真的很有帮助。嘿,非常感谢。您能否详细说明并扩展此答案,以说明如何使用拓扑列表?然后我将它标记为答案,作为我原始问题的一部分。嗨,我扩展了答案,向您展示了如何从gizmo对象获取拓扑列表。希望能有帮助。非常感谢。这真的很有帮助。