Unity中Json创建,解析

  我用的是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解析完了是一个数组

[csharp]  view plain  copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using LitJson;  
  4.   
  5. public class Test : MonoBehaviour {  
  6.   
  7.     string json1;  
  8.     string json2;  
  9.     string json3;  
  10.   
  11.     string name;  
  12.     int lv;  
  13.     string job;  
  14.     float exp;  
  15.   
  16.     //创建json  
  17.     void CteateJson()  
  18.     {  
  19.         JsonWriter writer = new JsonWriter ();  
  20.         writer.WriteObjectStart ();  
  21.         writer.WritePropertyName ("name");  
  22.         writer.Write ("张三");  
  23.         writer.WritePropertyName ("lv");  
  24.         writer.Write (1);  
  25.         writer.WritePropertyName ("job");  
  26.         writer.Write ("法师");  
  27.         writer.WritePropertyName ("exp");  
  28.         writer.Write (1.1);  
  29.         writer.WriteObjectEnd ();  
  30.   
  31.         json1 = writer.ToString ();  
  32.         Debug.Log (json1);  
  33.     }  
  34.   
  35.   
  36.   
  37.     //解析Json  
  38.     void ParsingJson()  
  39.     {  
  40.         JsonData jsonData = JsonMapper.ToObject (json1);  
  41.   
  42.         name = jsonData ["name"].ToString ();  
  43.         lv = int.Parse(jsonData["lv"].ToString());  
  44.         job = jsonData["job"].ToString();  
  45.         exp = float.Parse(jsonData["exp"].ToString());  
  46.         Debug.Log ("name:" + name);  
  47.     }  
  48.   
  49.     //创建复合Json  
  50.     void CreateCompostieJson()  
  51.     {  
  52.         JsonWriter writer = new JsonWriter ();  
  53.         writer.WriteObjectStart ();  
  54.         writer.WritePropertyName ("name");  
  55.         writer.Write ("李四");  
  56.         writer.WritePropertyName ("info");  
  57.         writer.WriteObjectStart ();  
  58.         writer.WritePropertyName ("lv");  
  59.         writer.Write (2);  
  60.         writer.WritePropertyName ("job");  
  61.         writer.Write ("战士");  
  62.         writer.WritePropertyName ("exp");  
  63.         writer.Write (2.2);  
  64.         writer.WriteObjectEnd ();  
  65.         writer.WriteObjectEnd ();  
  66.   
  67.         json2 = writer.ToString ();  
  68.         Debug.Log ("json2:" + json2);  
  69.     }  
  70.   
  71.     //解析复合Json  
  72.     void ParsingCompostieJson()  
  73.     {  
  74.         JsonData jsonData = JsonMapper.ToObject (json2);  
  75.         Debug.Log(jsonData ["name"].ToString ());  
  76.         Debug.Log(jsonData ["info"] ["lv"].ToString ());  
  77.     }  
  78.   
  79.     //生成Json数组  
  80.     void CreatdJsonArray()  
  81.     {  
  82.         JsonWriter writer = new JsonWriter ();  
  83.         writer.WriteArrayStart ();  
  84.         writer.Write ("张三");  
  85.         writer.Write (1);  
  86.         writer.Write ("法师");  
  87.         writer.Write (1.1);  
  88.         writer.WriteArrayEnd ();  
  89.   
  90.         json3 = writer.ToString ();  
  91.         Debug.Log ("json3:" + json3);  
  92.     }  
  93.   
  94.     //解析Json数组  
  95.     void ParsingJsonArray()  
  96.     {  
  97.         JsonData jsonData = JsonMapper.ToObject (json3);  
  98.         jsonData[0].ToString();  
  99.         jsonData[1].ToString();  
  100.   
  101.   
  102.     }  
  103.   
  104.   
  105.     void OnGUI()  
  106.     {  
  107.         if (GUILayout.Button ("创建Json"))  
  108.             CteateJson ();  
  109.         if (GUILayout.Button ("解析Json"))  
  110.             ParsingJson ();  
  111.         if (GUILayout.Button ("创建复合Json"))  
  112.             CreateCompostieJson ();  
  113.         if (GUILayout.Button ("解析复合Json"))  
  114.             ParsingCompostieJson ();  
  115.         if (GUILayout.Button ("创建Json数组"))  
  116.             CreatdJsonArray ();  
  117.     }  
  118.   
  119. }  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值