【发布时间】:2021-05-23 11:50:47
【问题描述】:
我正在尝试将 JSONNode 更改为字典。我一直在寻找几个小时的解决方案。我知道 JsonUtilities 不适用于字典。我尝试的一切都给test4 = null,没有错误。
JSONNode test1 = JSON.Parse(customData);
//customData is :"{\"ItemClass\":\"S\",\"Type\":\"Band\",\"Stats\":[{\"HP\":\"100\",\"Atk\":\"50\",\"Def\":\"25\",\"Crit\":\"10\"}]}"
JSONArray test2 = test1["Stats"].AsArray;
JSONNode test3 = test2[0];
TEST4 总是给我一个空值,我也尝试将 test3 更改为对象或字符串。以下是我尝试过的一些东西:
var test4 = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(test3);
var test4 = JsonConvert.DeserializeObject<List<Dictionary<string, int>>>(test3);
var test4 = JsonConvert.DeserializeObject<Dictionary<string, string>(test3);
var test4 = JsonConvert.DeserializeObject<Dictionary<string, int>(test3);
我正在尝试访问下图中的字典
https://i.stack.imgur.com/2JWLB.png
我确定我错过了一些超级简单的东西......
谢谢
【问题讨论】:
-
这个答案准确地展示了如何将 json 移动到 Unity 中的 Dictionary stackoverflow.com/a/38535392/294884
-
建议您为键和值创建列表,而不是直接序列化字典然后反序列化它。如果您想使用 JSON 中的字典,请将列表添加到空字典中。
-
@SeLeCtRa 我建议相反,而是直接使用
Dictionary,Newtonsoft .Net JSON完全支持 -
有没有办法在 test3 中找到字典(如图所示)?提供的链接中的示例使用类作为我的示例,实际上并没有类....也许我没有得到任何东西。
标签: c# json dictionary unity3d