如何在统一中使用JsonUtility获得子数组

本文关键字:JsonUtility 数组 | 更新日期: 2023-09-27 18:18:02

这是我的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
{
    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])
            }
 }

我在这里没有得到positionX数组。我得到一个索引数组错误。有人能帮我反序列化unity中的子数组吗?

如何在统一中使用JsonUtility获得子数组

问题是你的json格式不正确。

:

"orbNumber": "["0", "1", "2", "3"]"

应该是这样的:

"orbNumber": ["0", "1", "2", "3"]

数组不需要加引号

另外,您需要在模型类中将positionX重命名为orbNumber。