Json 数组简单解析 操作
前言:
游戏戏中,有时候会用到 一些数据保存到 json里面,在再需要的时候读取出来。一般是用来保存一些不常修改的文本信息,如游戏中每天固定的任务名与任务描述 数据 (一般是固定的)。下面记录一下自己在实践中,对 json 数组解析的简单操作 实现。
// 加载 json 文件
string strPath = "Json/text.json"; // 需要先在资源目录下,创建一个Json 文件
TextAsset jsonText = Resources.Load (strPath) as TextAsset; // 系统自动加载数据文本方法,也可以自己实现
if (jsonText == null)
{
return;
}
JsonData jsonData = JsonMapper.ToObject(jsonText.text); // 转换为json数据
单个数组 json解析:
// 单个数组 json解析
string str = jsonData[0][0].ToString(); // 等同于: jsonData[0]["title"].ToString();
//Debug.Log("\n 当前json 数据:" + str);
Debug.Log("\n 当前 json 数据为 title:" + jsonData[0][0].ToString());
Debug.Log(" content: " + jsonData[0][1].ToString());
// 打印出数据为:
当前 json 数据为 title: 通告, content: 通告详情
嵌套多个数组 json 解析:
// 读取 "detail" 数组 数据 --- 嵌套json 数组 解析出的还是一个json 数组
JsonData m_data = jsonData[0][0]; // 等同于: jsonData["detail"][0] --- 取detail 下的第一个数组数据
string multiJson = m_data[0].ToString(); // 等同于: m_da["title"].ToString(); --- 取第一个数组中的第一个key值
Debug.LogFormat("\n 当前 json 数据为 title: {0}, content: {1}", m_data[0].ToString(), m_data[1].ToString());
// 打印出数据为:
当前 json 数据为 title: 通告, content: 通告详情
JsonData m_data1 = jsonData[1][1]; // 等同于: jsonData["content"][0] --- 取content 下的第二个数组数据
Debug.LogFormat("\n 当前 json 数据为 content:{0}", m_data1[0].ToString()); // --- 取第二个数组中的第一个key值
// 打印出数据为:
当前 json 数据为 content: 空气质量详情
Json 样例数据:
// 单个 json 数组 数据
[{
"title": "通告",
"content": "通告详情"
},
{
"title": "天气预报",
"content": "天气详情"
}
]
// 嵌套json 数组 数据
{
"detail": [{
"title": "通告",
"subtitle": "通告详情"
},
{
"title": "天气预报",
"subtitle": "天气详情"
}
],
"content": [{
"0": "通告详情~"
},
{
"1": "空气质量详情~"
}
]
}
有兴趣的,还可以 多加几个复杂嵌套json数组,实现一下哈~