Java 如何在c#中反序列化此JSON?
在java中使用TIntObjectMap并像这样加载它们很好。 在c#中找不到这样做的方法Java 如何在c#中反序列化此JSON?,java,c#,json,Java,C#,Json,在java中使用TIntObjectMap并像这样加载它们很好。 在c#中找不到这样做的方法 GSON.fromJson(FileUtils.readFileToString(新文件(“File.json”)),新的TypeToken(){}.getType()); 使用 这是我使用的json(正如您发布的) 将值1转换为0时出错type@Indrz考虑到您的json问题,我在发布之前测试了我的代码,它可以正常工作。。。因此,请发布一些比将值1转换为类型更好的信息,Jim为什么不简单地复制并粘贴
GSON.fromJson(FileUtils.readFileToString(新文件(“File.json”)),新的TypeToken(){}.getType());
使用
这是我使用的json(正如您发布的)
将值1转换为0时出错type@Indrz考虑到您的json问题,我在发布之前测试了我的代码,它可以正常工作。。。因此,请发布一些比将值1转换为类型更好的信息,Jim为什么不简单地复制并粘贴上面的代码呢。不要打字。。它起作用了。。。。。也许我的电脑做了一些你们做不到的神奇事情:)我的方法有什么问题。如果没有用,我会删除它。@PavanChandaka我没有否决它,但它是不正确的。。。要反序列化的类型应该是
字典
,如我的答案所示。这就是问题中的json对应的内容。。
{
"1": {
"id": 1,
"name": "Name(1)",
"var": 24,
"type": "TEST"
},
"2": {
"id": 2,
"name": "Name(2)",
"var": 24,
"type": "TEST"
},
...
GSON.fromJson(FileUtils.readFileToString(new File("file.json")),new TypeToken<Map<Integer, Definition>>() { }.getType()));
var myobjs = JsonConvert.DeserializeObject<Dictionary<string, MyObject>>(json);
public class MyObject
{
public int id { get; set; }
public string name { get; set; }
public int var { get; set; }
public string type { get; set; }
}
dynamic dynObj = JsonConvert.DeserializeObject(json);
Console.WriteLine(dynObj["1"].name);
{
"1": {
"id": 1,
"name": "Name(1)",
"var": 24,
"type": "TEST"
},
"2": {
"id": 2,
"name": "Name(2)",
"var": 24,
"type": "TEST"
}
}