【 unity3d 】Json学习

前言

Json 和xml一样,不同表现的文本格式
Json 用于服务器,大部分用于网络交互
xml用于本地操作(关卡数据)

语法规则、格式

  • 使用json格式必须是正确的,可以进行验证json格式在线编辑验证Json
  • key - value 对应 一个键对应一个值
  • 使用{}保存对象,{“qq” : “qwq”,”xx” : xx}
  • 使用[]保存数组 “xx” : [{},{},{}]

例如:

{"name":"ls","age":20}

{"people":
[
{"name":"Neworigin", "age":20}, 
{"name":"Test","age":"23"}
]
}

代码解析

  • 把Json格式的数据转换成Object存入list中
    private void JsonToObject(){
        string str = _ta.text;
        JsonData jd = JsonMapper.ToObject (str);

        string name = jd ["Name"].ToString ();

        Debug.Log (name);
        //通过索引器直接获得键值
        JsonData jsonData = jd ["HeroList"];
        //循环遍历HeroList对应的value集合
        for (int i = 0; i < jsonData.Count; i++) {
            JsonData data = jsonData [i];
            string heroName = data ["HeroName"].ToString ();
            int hp =int.Parse(data["HP"].ToString ());
            int hk =int.Parse(data ["HK"].ToString ()); 
            Hero hero = new Hero ();
            hero.Name = heroName;
            hero.HP = hp;
            hero.HK = hk;
            _heroGroup.Add (hero);
        }
    }
  • 把Object转换成Json格式的字符串
    private void ObjectToJson(){
        Hero hero = new Hero ();
        hero.Name = "A";
        hero.HP = 1;
        hero.HK = 2;

        JsonData jd = new JsonData ();
        jd ["Name"] = hero.Name;
        jd ["HP"] = hero.HP;
        jd ["HK"] = hero.HK;
        string str = jd.ToJson ();
        Debug.Log (str);
    }
  • 把Object数组转换成Json格式字符串的数组
        //一般使用循环遍历容器,添加JsonData
        JsonData jdGroup = new JsonData ();
        jdGroup.Add (jd);
        jdGroup.Add (jd2);
        jdGroup.Add (jd3);

        JsonData jdHeroList = new JsonData ();
        jdHeroList ["HeroList"] = jdGroup;

        string strGroup = jdHeroList.ToJson ();
        Debug.Log (strGroup);

猜你喜欢

转载自blog.csdn.net/liaoshengg/article/details/80982418
今日推荐