[原创]Json学习--litjson的生成和…

    xiaoxiao2025-10-16  3

    Json示例

    1,json对象

    {“name”:”张三”,”lv”:1,”job”:”法师”,”exp”:1.1}

    2,复合json对象

    {“name”:”李四”,”job”:{“lv”:2,”job”:”战士”,”exp”:2.2}}

    3,json数组

    [{“name”:”张三”,”lv”:1,”job”:”法师”,”exp”:1.1},{“name”:”李四”,”lv”:2,”job”:”战士”,”exp”:2.2}]

    ///这个就是Json文件里面的格式了。

    ///

    2,生成json对象

    Json.Writer writer=new JsonWriter();//创建json对象

    writer.WriteObjectStart();//开始写对象

    writer.WritePropertyName(“name”);//写入键

    writer.Write(“张三”);//写入值

    writer.WriteObjectEnd();//结束写入对象

    生成对象

    {“name”:”张三”}

    所以要打印的话

    String str=writer.ToString();

    Debug.Log(str);

    3,用LitJson生成json对象

    JsonData data=new JsonData();

    data[“name”]=”张三”;

    data[“lv”]=1;

    data[“job”]=”法师”;

    data[“exp”]=1.1;

    。。。生成json对象为。。。。

    {“name”:”张三”,”lv”:1,”job”:”法师”,”exp”:1.1}

    Mono例子:

    using UnityEngine;using System.Collections.Generic;public class Gamemanager : MonoBehaviour { string strLitjson; void Start () { CreateLitjson(); }

    Public void CreateLitjson(){

    JsonData data=new JsonData();

    data[name]=”张三”;

    data[lv]=1;

    data[job]=”法师”;

    data[exp]=1.1;

    strLitjson=data.ToJson();//说明litjson是输出字符串了

    Debug.Log(strLitjson);

    } }

    //想要同样的效果用老Json

    Public void CreateLitjson(){

    writer.WriteObjectStart();//开始写对象

    JsonWriter writer=new JsonWriter();

    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();

    String json01=writer.ToString();

    Debug.Log(json01);

    二、生成复合json对象//

    这个看明白了,前面不用看了生成下面的结果

    {“name”:”李四”,”info”:{“lv”:2,”job”:,”战士”,”exp”:2.2}}

    方法1,老json

     Void CreateJsonObject(){

    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();//两个end

    String strJson=writer.ToString();

    }

    //

    方法2litjson方式

     Void CreateJsonObject(){

    JsonData data=new JsonData();

    data[“name”]=”李四”;

    data[“info”]=new JsonData();

    data[“info”][“lv”]=2;

    data[“info”][“job”]=”战士”;

    data[“info”][“exp”]=2.2;

    String strJson=data.ToJson;//ToJson;

      /

      方法2复杂点的,生成json数组litjson方式

        void CreateLitjsonArray(){         JsonData data=new JsonData();         JsonData data1=new JsonData();         data1["name"]="李四";         data1 ["lv"] = 2;         JsonData data2=new JsonData();         data2["job"]="战士";         data2 ["exp"] = 199.314;         data.Add (data1);         data.Add (data2);         strLitjsonArray=data.ToJson();//说明litjson是输出字符串了         Debug.Log(strLitjsonArray);     }

      结果是:[{"name":"李四","lv":2},{"job":"战士","exp":199.314}]

    /// 以上全部是创建json,下面是解析了。 /// 只解析litjson的例子,就解析上面这个最复杂的数组的例子

        string m_name;     int lv;     string job;     float exp;       //首先要有变量接受对应的键值

    void ParsingJsonArray(){         JsonData data = JsonMapper.ToObject (strLitjsonArray);//strLitjsonArray这个string要提前申明的         m_name=data [0]["name"].ToString();         lv=int.Parse(data[0] ["lv"].ToString());         job=data [1]["job"].ToString();         exp=float.Parse(data[1] ["exp"].ToString());         Debug.Log ("name:"+m_name);         Debug.Log ("lv:"+lv);         Debug.Log ("job:"+job);         Debug.Log ("exp:"+exp);     } 结束:这样应该很清楚的知道用法了,还有litjson解析 中文的时候好像要乱码,网上有修改的dll,可以找找  

     

     

    转载请注明原文地址: https://ju.6miu.com/read-1303222.html
    最新回复(0)