Unity学习笔记:Json解析LitJson

json解析的基本操作。

using UnityEngine;
using System.Collections;
using LitJson;

public class TestJson : MonoBehaviour {

	private string json1;
	private string json2;
	private string name;
	private int lv;
	private string job;
	private float exp;

	/// <summary>	/// 创建Json对象	/// </summary>
	private void CreateJson()
	{
		JsonWriter json = new JsonWriter ();
		json.WriteObjectStart ();
		json.WritePropertyName ("name");
		json.Write ("张三");
		json.WritePropertyName ("lv");
		json.Write (1);
		json.WritePropertyName ("job");
		json.Write ("法师");
		json.WritePropertyName ("exp");
		json.Write (1.1);
		json.WriteObjectEnd ();
		json1 = json.ToString ();
	}


	private void CreateLitJson()
	{
		JsonData json = new JsonData ();
		json ["name"] = "张三";
		json ["lv"] = 1;
		json ["job"] = "法师";
		json ["exp"] = 1.1;
		json2 = json.ToJson ();
	}

	/// <summary>	/// 解析Json	/// </summary>
	private void ParsingJson()
	{
		JsonData json = JsonMapper.ToObject (json2);
		name = json ["name"].ToString();
		lv = json ["lv"].ValueAsInt ();
		job = json ["job"].ValueAsString ();
		exp = float.Parse(json ["exp"].ToString ());
	}

	/// <summary>	/// 创建复合Json	/// </summary>
	private void CreateCompositeJson()
	{
		JsonWriter json = new JsonWriter ();
		json.WriteObjectStart ();
		json.WritePropertyName ("name");
		json.Write ("李四");
		json.WritePropertyName ("info");
		json.WriteObjectStart ();
		json.WritePropertyName ("lv");
		json.Write (2);
		json.WritePropertyName ("job");
		json.Write ("战士");
		json.WritePropertyName ("exp");
		json.Write (2.2);
		json.WriteObjectEnd ();
		json.WriteObjectEnd ();
		json1 = json.ToString ();
	}

	private void CreateCompostieLitJson()
	{
		JsonData json = new JsonData ();
		json["name"] = "李四";	
		JsonData json1 = new JsonData ();
		json1 ["lv"] = 2;
		json1 ["job"] = "战士";
		json1 ["exp"] = 2.2;
		json ["info"] = json1;

//		JsonData json = new JsonData ();
//		json["name"] = "李四";
//		json ["info"] = new JsonData ();
//		json ["info"] ["lv"] = 2;
//		json ["info"] ["job"] = "战士";
//		json ["info"] ["exp"] = 2.2;
		json2 = json.ToJson ();
	}

	/// <summary>	/// 解析Json	/// </summary>
	private void ParsingCompostieJson()
	{
		JsonData json = JsonMapper.ToObject (json2);
		name = json ["name"].ToString ();
		JsonData json1 = json ["info"];
		lv = json1 ["lv"].ValueAsInt ();
		job = json1 ["job"].ToString ();
		exp = float.Parse(json1 ["exp"].ToString());
//		JsonData json = JsonMapper.ToObject (json2);
//		name = json ["name"].ToString ();
//		lv = json ["info"] ["lv"].ValueAsInt ();
//		job = json ["info"] ["job"].ValueAsString ();
//		exp = float.Parse(json ["info"] ["exp"].ToString());
	}

	/// <summary>	/// 创建Json数组	/// </summary>
	private void CreateJsonArray()
	{
		JsonWriter json = new JsonWriter ();
		json.WriteArrayStart ();
		json.Write ("张三");
		json.Write (1);
		json.Write ("法师");
		json.Write (1.1);
		json.WriteArrayEnd ();
		json1 = json.ToString ();
	}

	private void CreateLitJsonArray()
	{
		JsonData json = new JsonData ();
		json.Add ("张三");
		json.Add (1);
		json.Add ("法师");
		json.Add (1.1);
		json2 = json.ToJson ();
	}

	/// <summary>	/// 解析Json数组	/// </summary>
	private void ParsingJsonArray()
	{
		JsonData json = JsonMapper.ToObject (json2);
		name = json [0].ToString ();
		lv = json [1].ValueAsInt ();
		job = json [2].ToString ();
		exp = float.Parse(json[3].ToString());
	}

	private void CreatJson()
	{
//		JsonData json = new JsonData ();
//		json.Add ("张三");
//		JsonData data1 = new JsonData ();
//		data1 ["info"] = new JsonData ();
//		data1 ["info"] ["lv"] = 1;
//		data1 ["info"] ["job"] = "法师";
//		data1 ["info"] ["exp"] = 1.1;
//		json.Add (data1);
//		json.Add (1);
//		JsonData data2 = new JsonData ();
//		data2 ["exp"] = 2.2;
//		json.Add (data2);
//		JsonData data3 = new JsonData ();
//		data3 ["name"] = "李四";
//		data3 ["info"] = new JsonData ();
//		data3 ["info"] ["lv"] = 3;
//		data3 ["info"] ["job"] = "战士";
//		data3 ["info"] ["exp"] = 3.3;
//		json.Add (data3);

		JsonData json = new JsonData ();
		json.Add ("张三");
		JsonData data1 = new JsonData ();
		data1 ["lv"] = 1;
		data1 ["job"] = "法师";
		data1 ["exp"] = 1.1;
		JsonData data2 = new JsonData ();
		data2 ["info"] = data1;
		json.Add (data2);
		json.Add (1);
		JsonData data3 = new JsonData ();
		data3 ["exp"] = 2.2;
		json.Add (data3);
		JsonData data4 = new JsonData ();
		data4 ["name"] = "李四";
		JsonData data5 = new JsonData ();
		data5 ["lv"] = 3;
		data5 ["job"] = "战士";
		data5 ["exp"] = 3.3;
		data4 ["info"] = data5;
		json.Add (data4);
		json1 = json.ToJson ();
	}

	private void ParsingJsons()
	{
		JsonData json = JsonMapper.ToObject (json1);
		Debug.Log (json[0].ToString());
		Debug.Log (json[1]["info"] ["lv"].ToString());
		Debug.Log (json[1]["info"] ["job"].ToString());
		Debug.Log (json[1]["info"] ["exp"].ToString());
		Debug.Log (json[2].ToString());
		Debug.Log (json[3]["exp"].ToString());
		Debug.Log (json[4]["name"].ToString());
		Debug.Log (json[4]["info"] ["lv"].ToString());
		Debug.Log (json[4]["info"] ["job"].ToString());
		Debug.Log (json[4]["info"] ["exp"].ToString());
	}


	private void OnGUI()
	{
		if (GUILayout.Button ("创建Json"))
			CreatJson ();
		if (GUILayout.Button ("创建LitJson"))
			CreateLitJsonArray ();
		if (GUILayout.Button ("解析LitJson"))
			ParsingJsons ();
		GUILayout.Label ("json1:" + json1);
		GUILayout.Label ("json2:" + json2);
		GUILayout.Label ("name:" + name);
		GUILayout.Label ("lv:" + lv);
		GUILayout.Label ("job:" + job);
		GUILayout.Label ("exp:" + exp);
	}
}

猜你喜欢

转载自blog.csdn.net/huanyu0127/article/details/108899821
今日推荐