继承我的JSON对象:
{
"1000":{
"id": "23445",
"latlon": "6780"
},
"1001":{
"id": "23454",
"latlon": "6784"
},
"1002":{
"id": "23245",
"latlon": "6180"
},
"1003":{
"id": "12345",
"latlon": "6740"
}
}
如您所见,属性名称是纯整数(1000,1001,1002,1003)
我无法在integar中声明类变量名并运行System.json.Serialization。
因此我需要将JSON文件加载到:
public static Dictionary<int, NodeDetail> NodeInfo;
public class NodeDetail {
public ulong id;
public int latlon;
//Generic class serializer
//Generic class deserializer
}
这是否有库函数?或者我是否必须从头开始解析JSON字符串?
PS。我是C#的新手(来自C ++)
答案 0 :(得分:2)
Newtonsoft.Json。你可以从NuGet中获取它。
简单示例:
public static T DeserializeJson<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
然后
Dictionary<string, object> foo = DeserializeJson<Dictionary<string, object>>(" ... insert JSON here ... ");
编辑:鉴于您在问题中提到的结构,您可能希望反序列化为嵌套字典:
Dictionary<int, Dictionary<long, int>> foo = DeserializeJson<Dictionary<int, Dictionary<long, int>>>(" ... insert JSON here ...");
还有JObject(在相同的Newtonsoft.Json库中),它非常有助于反序列化为可以使用的统一内容。