C#: Json数组的 简单解析操作

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数组,实现一下哈~



你可能感兴趣的:(C#,Unity-3D)