unity--newtonsoft.json解析

Posted 格拉格拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity--newtonsoft.json解析相关的知识,希望对你有一定的参考价值。

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]));
        
    

以上是关于unity--newtonsoft.json解析的主要内容,如果未能解决你的问题,请参考以下文章

第4.4节 Python解析与推导:列表解析字典解析集合解析

云解析DNS如何实现智能解析?

全民解析vip视频哪个好

mybatis源码配置文件解析之五:解析mappers标签(解析class属性)

什么是DNS域名解析,怎样解析?

DNS域名解析服务(正向解析反向解析)