C# 如何在unity中使用JsonUtility获取子数组
这是我的JSON:C# 如何在unity中使用JsonUtility获取子数组,c#,json,unity3d,C#,Json,Unity3d,这是我的JSON: {"data":[{"id":1,"layoutLabel":"Sameer Non Custom","orbNumber":"["0","1","2","3"]"}, {"id":2,"layoutLabel":"Samer Custom","orbNumber":"["2","3","4","5"]"}],"status":200} 下面是我在unity中的C#类来反序列化它: [System.Serializable] class GetLayoutsResult {
{"data":[{"id":1,"layoutLabel":"Sameer Non Custom","orbNumber":"["0","1","2","3"]"},
{"id":2,"layoutLabel":"Samer Custom","orbNumber":"["2","3","4","5"]"}],"status":200}
下面是我在unity中的C#类来反序列化它:
[System.Serializable]
class GetLayoutsResult
{
public List<LayoutData> data;
public int status;
}
[System.Serializable]
class LayoutData
{
public int id;
public string layoutLabel;
public string [] orbNumber;
}
GetLayoutsResult P = JsonUtility.FromJson<GetLayoutsResult>(w.text);
if (P.status == 200)
{
for (int i = 0; i < P.data.Count; i++)
{
Debug.Log(layoutEditButtonScript.layoutName + " " + P.data[i].positionX[0])
}
}
[System.Serializable]
类GetLayoutsResult
{
公开名单数据;
公众地位;
}
[系统可序列化]
类布局数据
{
公共int id;
公共字符串布局标签;
公共字符串[]或数字;
}
下面是对其进行反序列化的代码:
[System.Serializable]
class GetLayoutsResult
{
public List<LayoutData> data;
public int status;
}
[System.Serializable]
class LayoutData
{
public int id;
public string layoutLabel;
public string [] orbNumber;
}
GetLayoutsResult P = JsonUtility.FromJson<GetLayoutsResult>(w.text);
if (P.status == 200)
{
for (int i = 0; i < P.data.Count; i++)
{
Debug.Log(layoutEditButtonScript.layoutName + " " + P.data[i].positionX[0])
}
}
GetLayoutsResult P=JsonUtility.FromJson(w.text);
如果(P.status==200)
{
对于(int i=0;i
我在这里没有得到positionX数组。我得到了一个索引数组错误。有人能帮我反序列化unity中的子数组吗 问题在于您的json格式不正确 这: 应该是这样的:
"orbNumber": ["0", "1", "2", "3"]
不需要在数组周围加引号
此外,您还需要在模型类中将positionX重命名为orbNumber。使用
Newtonsoft Json.Net将非常简单明了-JsonConvert
Unitys内置的Json实用程序实际上比Newtonsoft更快,使用起来也同样简单。这里的速度基准:@turnipinrut感谢您提供的详细信息,我需要通过用例进行验证,因为newtonsoftjson.Net
可以说是社区使用的最流行的Json序列化程序
,这个序列化程序也需要[Serialize]
属性(我希望不是),因为这会使.Net framework中的许多内置类(默认情况下不按属性标记)变得困难,所以在某些地方我们也不会故意标记,因为二进制文件需要在运行时调用自定义序列化程序(如Protobuf)serialization@MrinalKamboj在统一申请中,,图书馆的受欢迎程度根本不是重要的因素。最好使用工具附带的库。所以建议使用JsonUtility
。我完全理解这一事实,但我是在专门讨论使用.NET2.0
的Unity,我相信JavaScriptSerializer
是在.NET的更高版本中引入的。话虽如此,JsonUtility
是Unity应用程序的默认工具,即使还有其他更受欢迎的工具。