将具有动态属性的Json转换为C#
我在将这个json转换为c#时遇到了一个相当大的问题,因为保存我需要的所有数据的对象是一个动态属性,我不能像以前那样定义一个保存所有属性值的类。下面是示例json,从“144038410”对象提取数据有什么想法吗?我感谢在这个问题上提供任何指导将具有动态属性的Json转换为C#,c#,json,asp.net-web-api,dynamic-programming,type-conversion,C#,Json,Asp.net Web Api,Dynamic Programming,Type Conversion,我在将这个json转换为c#时遇到了一个相当大的问题,因为保存我需要的所有数据的对象是一个动态属性,我不能像以前那样定义一个保存所有属性值的类。下面是示例json,从“144038410”对象提取数据有什么想法吗?我感谢在这个问题上提供任何指导 { "result": { "144038410": { "icon_url": "W_I_5GLm4wPcv9jJQ7z7tz_l_0sEIYUhRfbF4arNQkgGQGKd3kMuVpMgCwRZrhyFY1OZ0v4CY
{
"result": {
"144038410": {
"icon_url": "W_I_5GLm4wPcv9jJQ7z7tz_l_0sEIYUhRfbF4arNQkgGQGKd3kMuVpMgCwRZrhyFY1OZ0v4CYfbKFzE6FY3tT0Gve6aY1lyeWN9SaN1gKyFN2I3hgUkVXHeDV78TC9V_vJLFhwPrXgeUf2ZpytoBgaXHiZCBWKDVt1K5J0cGAAdo",
"icon_url_large": "W_I_5GLm4wPcv9jJQ7z7tz_l_0sEIYUhRfbF4arNQkgGQGKd3kMuVpMgCwRZrhyFY1OZ0v4CYfbKFzE6FY3tT0Gve6aY1lyeWN9SaN1gK1AV3Zu_01cXBiPUB7EVXNJ4tczLh1i8BQrEcDs0nt8Ch_Wc0cOCU67VqxbjdgUmzaQ3WoDEBb7J",
"icon_drag_url": "",
"name": "Kupu the Metamorpher",
"market_hash_name": "Kupu the Metamorpher",
"market_name": "Kupu the Metamorpher",
"name_color": "D2D2D2",
"background_color": "",
"type": "Mythical Kupu Courier",
"tradable": "1",
"marketable": "1",
"commodity": "0",
"market_tradable_restriction": "7",
"market_marketable_restriction": "7",
"fraudwarnings": "",
"descriptions": {
"0": {
"type": "html",
"value": "All hail Kupu the Metamorpher! Honest and forthright, Kupu with delivery your items in a most timely fashion. Steadfast!",
"app_data": ""
}
},
"tags": {
"0": {
"internal_name": "unique",
"name": "Standard",
"category": "Quality",
"color": "D2D2D2",
"category_name": "Quality"
},
"1": {
"internal_name": "Rarity_Mythical",
"name": "Mythical",
"category": "Rarity",
"color": "8847ff",
"category_name": "Rarity"
},
"2": {
"internal_name": "courier",
"name": "Courier",
"category": "Type",
"category_name": "Type"
},
"3": {
"internal_name": "courier",
"name": "Courier",
"category": "Slot",
"category_name": "Slot"
},
"4": {
"internal_name": "DOTA_OtherType",
"name": "Other",
"category": "Hero",
"category_name": "Hero"
}
},
"classid": "144038410"
},
"success": true
}
}您必须使用
JsonProperty
属性来修饰您的格式属性,以告诉它如果名称不完全匹配会发生什么:
partial class result
{
[JsonProperty("144038410")]
public dynamic _144038410 {get; set;}
}
另请参见我知道你可以这样做,但问题是我有大约5000条记录,所以我必须为5000个不同的数字这样做?必须有一个更干净的解决方案,我只是用下面的方法得到的,谢谢所有的帮助。JObject json=JsonConvert.DeserializeObject(jsonString);var asdf=为什么[“结果”].First.First.ToObject();其中,POCO是一个包含我需要的属性的类