当前位置:网站首页>unity--newtonsoft.json解析
unity--newtonsoft.json解析
2022-06-27 09:22: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]));
}
}边栏推荐
猜你喜欢

Design of a solar charge pump power supply circuit

Source insight 工具安装及使用方法

E+h secondary meter repair pH transmitter secondary display repair cpm253-mr0005

不容置疑,这是一个绝对精心制作的项目

Installation and usage of source insight tool

Quick start CherryPy (1)

【生动理解】深度学习中常用的各项评价指标含义TP、FP、TN、FN、IoU、Accuracy

IMX8QXP DMA资源和使用(未完结)

Nosql 数据库 -Redis 安装

prometheus告警流程及相关时间参数说明
随机推荐
有关二叉树的一些练习题
力扣84柱状图中最大的矩形
巴基斯坦安全部队开展反恐行动 打死7名恐怖分子
隐私计算FATE-离线预测
Advanced mathematics Chapter 7 differential equations
内存泄露的最直接表现
Analysis of orthofinder lineal homologous proteins and result processing
不容置疑,这是一个绝对精心制作的项目
Installation and use of SVN version controller
this,构造器,静态,之间调用,必须搞懂啊!
How much do you know about the cause of amplifier distortion?
Introduction to websocket protocol
IO管脚配置和pinctrl驱动
我大抵是卷上瘾了,横竖睡不着!竟让一个Bug,搞我两次!
Improving efficiency or increasing costs, how should developers understand pair programming?
June 26, 2022 (LC 6100 counts the number of ways to place houses)
【生动理解】深度学习中常用的各项评价指标含义TP、FP、TN、FN、IoU、Accuracy
Several cases that do not initialize classes
【系统设计】邻近服务
RockerMQ消息发送与消费模式