【发布时间】:2019-10-05 21:50:49
【问题描述】:
我正在尝试在 Unity-C# 中获取 Json 数据集并将其转换为字典
{
1:
{
"uni_number": 001,
"level" : 3,
"Hp" : 15
},
2:
{
"uni_number": 000,
"level" : 0,
"Hp" : 0
}
}
(如果需要,我可以使用 intigers 字符串)当我想保存游戏时,我还需要将字典文件转回 json 文件。
我检查了几个不同的 StackOverflow 问题,但我似乎无法弄清楚。我尝试使用 JsonUtility 将其解析为字典。
这是我要转成字典的json文件
string json = @"1:{""uni_number"": 001,""level"" : 3,""Hp"" : 15},2:{""uni_number"": 000,""level"" : 0,""Hp"" : 0}";
这是我尝试过的事情之一,如果我可以让它工作,而不是在我添加另一个深度之后我应该能够从那里完成它。
string json = @"{""uni_number"": ""001"",""level"" : ""3"", ""Hp"": ""15""}";
Dictionary<string, string> loadedData = JsonUtility.FromJson<Dictionary<string, string>>(json);
这不会给我一个错误,但是当我尝试打印它时,它什么也没打印。这是我的打印方式。
foreach (KeyValuePair<string, string> kvp in loadedData)
{
print("Key = {0}, Value = {1}");
print(kvp.Key);
print(kvp.Value);
}
我也试过
string loadedData = JsonUtility.FromJson<string>(@"{""uni_number"": ""001"",""level"" : ""3"", ""Hp"": ""15""}");
print (loadedData)
它不打印任何东西,所以我认为我使用 JsonUtility 函数错误,但我不知道如何。
如果我不能让它工作,我可能会制作我自己的函数,将 json 文件转换为字典,但这可能会很麻烦。
【问题讨论】:
-
您发布的 JSON 远不能转换为
Dictionary<string, string>,而是Dictionary<int, object>,但当然,您应该创建一个类而不是使用对象 -
@MyNameIsntBob 我不确定我是否理解您的需求,但如果您的密钥应该是
"1", "2"等,那么您可以尝试这样做:string json = @"{""1"":{""uni_number"": 001,""level"" : 3,""Hp"" : 15},""2"":{""uni_number"": 000,""level"" : 0,""Hp"" : 0}}"; Dictionary<string, object> obj = JsonConvert.DeserializeObject<Dictionary<string, object>>(Convert.ToString(json));为了使用它,您应该使用Newtonsoft.Json的Nuget包
标签: c# json dictionary unity3d