我从API接收到JSON字符串,我需要将其反序列化为可以在C#和Unity中使用的东西。我正在尝试使用Unity的JSON序列化,但是它似乎对我不起作用?
这是API中JSON结构的示例:
{
"results": [
[
"2016-09-01/20160901_200002_000.jpg",
"2016-09-01/20160901_192851_000.jpg",
"2016-09-01/20160901_193443_000.jpg",
"2016-09-01/20160901_210130_000.jpg"
],
[
"2016-09-02/20160902_104409_000.jpg",
"2016-09-01/20160901_165949_000.jpg"
],
[
"2016-09-02/20160902_104409_000.jpg",
"2016-09-02/20160902_104721_000.jpg",
"2016-09-02/20160902_093420_000.jpg",
],
[
"2016-09-02/20160902_082554_000.jpg"
]
]
}
这是我的代码,试图使用Unity的JsonUtility类将JSON反序列化为自定义类:
[Serializable]
public class MyClass
{
public List<List<string>> results;
}
MyClass test = JsonUtility.FromJson<MyClass>(jsonString);
Debug.Log(test.results); // this is just returning null
有人知道我在做什么错吗?
编辑:此答案似乎表明这是因为JsonUtility不支持数组,并提供了一个帮助器类,但不适用于此问题。
这是我用来解码JSON的方法:
希望对您有所帮助
public Dictionary<string, string> Decode(string encodedJson, string[] keys)
{
var details = JObject.Parse(encodedJson);
Dictionary<string, string> decodedjson = new Dictionary<string, string>();
foreach (var key in keys)
{
decodedjson.Add(key, details[key].ToString());
}
return decodedjson;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句