首页 > 解决方案 > 如何在 Unity 中进行 JSON 解析?

问题描述

我有一个字符串变量,其中包含以下 JSON。

[
    {
        "MeterLookup_TblRefID": 233,
        "NetworkLookup_TblRefID": 3,
        "Network_Name": "SS-43 SEWA SCADA (Command Center)",
        "Longitude": 55.403544,
        "Latitude": 25.366666,
        "OnOFfStatus": true
    },
    {
        "MeterLookup_TblRefID": 297,
        "NetworkLookup_TblRefID": 4,
        "Network_Name": "SS-8 MaySaloon",
        "Longitude": 55.406274,
        "Latitude": 25.360654,
        "OnOFfStatus": true
    },
    {
        "MeterLookup_TblRefID": 298,
        "NetworkLookup_TblRefID": 5,
        "Network_Name": "SS-1 Al Nasserya Driving School",
        "Longitude": 55.404669,
        "Latitude": 25.367591,
        "OnOFfStatus": true
    }
]   

我想将它统一解析为 JSON 对象

. 任何人都可以请告诉我该怎么做。

标签: jsonparsingunity3djsonparser

解决方案


使用这个功能:

public static T[] DeserializeFromJsonArray<T>(string jsonString)
    {        
            string newJson = "{ \"array\": " + jsonString + "}";
            Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(newJson);
            return wrapper.array;        
    }

像这样:

JsonObjectModel[] arrayOfObjects = DeserializeFromJsonArray<JsonObjectModel>(jsonArrayString);

如果您想再次序列化,请执行以下操作:

public static string SerializeToJsonArray<T>(T[] arrayToSerialize)
    {
        Wrapper<T> wrapper = new Wrapper<T>();
        wrapper.array = arrayToSerialize;
        return JsonUtility.ToJson(wrapper);
    }

并像这样使用它:

 string jsonString = JsonManager.SerializeToJson<JsonArrayModel>(jsonArrayModel);

如果您有更多问题,我得到了一些 UnityUtils 的仓库,其中包括此 JsonManaging 的示例:https ://github.com/EricBatlle/SimpleUnityUtils/tree/master/Assets/Simple_JsonManager


推荐阅读