Unity中Json创建,解析

46 篇文章 0 订阅

       我用的是LitJson.dll,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
       Json创建中writer.WriteObjectStart ();就等同于“{”,writer.WriteObjectEnd ()就等同于“}”,最后要转换成string型,json = writer.ToString ();。解析Json时,JsonData jsonData = JsonMapper.ToObject (json);注意复合Json解析完了是一个数组

using UnityEngine;
using System.Collections;
using LitJson;

public class Test : MonoBehaviour {

	string json1;
	string json2;
	string json3;

	string name;
	int lv;
	string job;
	float exp;

	//创建json
	void CteateJson()
	{
		JsonWriter writer = new JsonWriter ();
		writer.WriteObjectStart ();
		writer.WritePropertyName ("name");
		writer.Write ("张三");
		writer.WritePropertyName ("lv");
		writer.Write (1);
		writer.WritePropertyName ("job");
		writer.Write ("法师");
		writer.WritePropertyName ("exp");
		writer.Write (1.1);
		writer.WriteObjectEnd ();

		json1 = writer.ToString ();
		Debug.Log (json1);
	}



	//解析Json
	void ParsingJson()
	{
		JsonData jsonData = JsonMapper.ToObject (json1);

		name = jsonData ["name"].ToString ();
		lv = int.Parse(jsonData["lv"].ToString());
		job = jsonData["job"].ToString();
		exp = float.Parse(jsonData["exp"].ToString());
		Debug.Log ("name:" + name);
	}

	//创建复合Json
	void CreateCompostieJson()
	{
		JsonWriter writer = new JsonWriter ();
		writer.WriteObjectStart ();
		writer.WritePropertyName ("name");
		writer.Write ("李四");
		writer.WritePropertyName ("info");
		writer.WriteObjectStart ();
		writer.WritePropertyName ("lv");
		writer.Write (2);
		writer.WritePropertyName ("job");
		writer.Write ("战士");
		writer.WritePropertyName ("exp");
		writer.Write (2.2);
		writer.WriteObjectEnd ();
		writer.WriteObjectEnd ();

		json2 = writer.ToString ();
		Debug.Log ("json2:" + json2);
	}

	//解析复合Json
	void ParsingCompostieJson()
	{
		JsonData jsonData = JsonMapper.ToObject (json2);
		Debug.Log(jsonData ["name"].ToString ());
		Debug.Log(jsonData ["info"] ["lv"].ToString ());
	}

	//生成Json数组
	void CreatdJsonArray()
	{
		JsonWriter writer = new JsonWriter ();
		writer.WriteArrayStart ();
		writer.Write ("张三");
		writer.Write (1);
		writer.Write ("法师");
		writer.Write (1.1);
		writer.WriteArrayEnd ();

		json3 = writer.ToString ();
		Debug.Log ("json3:" + json3);
	}

	//解析Json数组
	void ParsingJsonArray()
	{
		JsonData jsonData = JsonMapper.ToObject (json3);
		jsonData[0].ToString();
		jsonData[1].ToString();


	}


	void OnGUI()
	{
		if (GUILayout.Button ("创建Json"))
			CteateJson ();
		if (GUILayout.Button ("解析Json"))
			ParsingJson ();
		if (GUILayout.Button ("创建复合Json"))
			CreateCompostieJson ();
		if (GUILayout.Button ("解析复合Json"))
			ParsingCompostieJson ();
		if (GUILayout.Button ("创建Json数组"))
			CreatdJsonArray ();
	}

}


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值