当前位置:网站首页>unity--newtonsoft.json解析

unity--newtonsoft.json解析

2022-06-27 09:26:00 格拉格拉

1.level1.txt json文件

{
  "level": {
    "floorCount": 2,
    "maxNum": 2,
    "left": 1,
    "right": 1,
    "time":[
        {
            "floor1":0.2
        },
        {
            "floor2":0.5
        }        
    ]
  }
}

2.LevelEntity.cs json實體類

[Serializable]
public class LevelEntity
{
    public int _floorCount;  
    public int _maxNum;     
    public int _left;       
    public int _right;      
    public List<float> _time = new List<float>();  
}

3.讀取StreamingAssets文件夾下的json文件


    public IEnumerator LoadLevel(string fileName)
    {
        string filePath = "";
        string result = "";
#if UNITY_EDITOR
        filePath = Application.dataPath + "/StreamingAssets/" + fileName + ".txt";
#elif UNITY_IPHONE
        filePath = Application.dataPath +"/Raw/"+fileName+".txt";
#elif UNITY_ANDROID
        filePath = “jar:file://” + Application.dataPath + “!/assets//"+fileName+".txt";
#endif
        Debug.LogError("FilePath:" + filePath);
        if (filePath.Contains("://"))
        {
            UnityWebRequest www = UnityWebRequest.Get(filePath);
            yield return www.SendWebRequest();
            if (www.isDone == false)
            {
                Debug.LogError("read json error:" + fileName);
            }
            result = www.downloadHandler.text;
        }
        else
        {
            result = System.IO.File.ReadAllText(filePath);
        }
        Debug.Log(result);

        JObject jsonData = JObject.Parse(result);
        JToken jToken = jsonData["Data"];
        le = new LevelEntity
        {
            _floorCount = int.Parse(jToken["floorCount"].ToString()),
            _maxNum = int.Parse(jToken["maxNum"].ToString()),
            _random = int.Parse(jToken["random"].ToString()),
            _left = int.Parse(jToken["left"].ToString()),
            _right = int.Parse(jToken["right"].ToString())
        };
    }

4.讀取Resources文件夾下的json文件

//讀取Resources下的json文件
    public void ReadJson(string fileName)
    {
        //獲得Json字符串
        string json = "";
        TextAsset text = Resources.Load<TextAsset>("levels/" + fileName);
        json = text.text;
        if (string.IsNullOrEmpty(json))
        {
            json = "";
            Debug.LogError(fileName + "...json is null or empty!");
        }
        Debug.Log(json);

        JObject jsonData = JObject.Parse(json);
        JToken jToken = jsonData["level"];
        JArray ja = JArray.Parse(jsonData["level"]["time"].ToString());

        le = new LevelEntity();
        le._floorCount = int.Parse(jToken["floorCount"].ToString());
        le._maxNum = int.Parse(jToken["maxNum"].ToString());
        le._left = int.Parse(jToken["left"].ToString());
        le._right = int.Parse(jToken["right"].ToString());
        for (int i = 0; i < ja.Count; i++)
        {
            string str1 = ja[i].ToString().Replace("{", "").Replace("}", "");
            string[] str2 = str1.Split(':');
            le._time.Add(float.Parse(str2[1]));
        }
    }

原网站

版权声明
本文为[格拉格拉]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/178/202206270922115673.html