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解析与推导:列表解析字典解析集合解析