Json在Unity中的使用

Json在Unity中的使用

  Json是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在 JS 语言中一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。关于Json的格式大概总结为四点:
  ·对象表示为键值对
  ·数据由逗号分隔
  ·花括号保存对象
  ·方括号保存数组
  其实Json就是一串字符串,大家在书写json的格式的时候如果不确定,可以通过在线Json校验格式化工具(BeJson)进行测试。基本格式如下:
  {“name”:“孙悟空”}
  {“name”:“孙悟空”,“age”:“18”}
  [{“name”:“孙悟空”,“age”:521},{“name”:“猪悟能”}]
  在Unity开发的时候需要引入一个LitJson类库,放到Plugins文件夹下就可以了,大家可以在我的网盘中下载链接:https://pan.baidu.com/s/1fPQ2Ei2CHMwXUYTfLL1sqw ;提取码:oyr0 。
下面直接给出代码案例:

using UnityEngine;
using LitJson;
class TravelOfWest
{
    public string name;
    public int age;
    public string skill;
    //无参构造方法
    public TravelOfWest()
    {
        Debug.Log("调用无参构造函数");
    }
    //有参构造方法
    public TravelOfWest(string name, int age, string skill)
    {
        this.name = name;
        this.age = age;
        this.skill = skill;
        Debug.Log("调用有参构造函数");
    }
}

public class JsonDemo1 : MonoBehaviour
{
    string jsonStr = "{'name':'孙悟空','age':567,'skill':'火眼金睛'}";
    void Start()
    {  
        CreateJson();
        CreateCS();
    }

    /// <summary>
    /// 将Json字符串转成C#数据
    /// </summary>
    void CreateCS()
    {
        
        //无参的
        TravelOfWest wuKong = JsonMapper.ToObject<TravelOfWest>(jsonStr);
        Debug.Log("无参:"+wuKong.name + " " + wuKong.age + " " + wuKong.skill);
        //有参的
        TravelOfWest wuko = new TravelOfWest("11", 3,"sk");
        JsonData data = JsonMapper.ToObject<JsonData>(jsonStr);
        wuko.name = data[0].ToString();
        wuko.age = System.Convert.ToInt32(data[1].ToString());
        wuko.skill = data[2].ToString();
        Debug.Log("------------");
        Debug.Log("有参:"+wuko.name + "  " + wuko.age + "  " + wuko.skill);
    }


    /// <summary>
    /// 将一些C#数据转成Json格式的数据
    /// </summary>
    void CreateJson()
    {
        //伪造数据
        string[] names = new string[] { "孙悟空", "猪悟能", "沙悟净", "白龙马" };
        int[] ages = new int[] { 567, 3000, 700,324 };
        string[] skills = new string[] { "火眼金睛", "弱水三千", "茹毛饮血", "浪里白龙" };
        string[] adress = new string[] { "花果山", "高老庄", "沙河", "东海" };
        //创建Json对象
        JsonData data = new JsonData();
        //设置Json对象为数组类型
        data.SetJsonType(JsonType.Array);
        for (int i = 0; i < names.Length; i++)
        {
            JsonData person = new JsonData();
            person["name"] = names[i];
            person["ages"] = ages[i];
            person["skill"] = skills[i];
            person["adress"] = adress[i];
            //把当前对象添加到data数组中
            data.Add(person);
        }
        string json = data.ToJson();
        Debug.Log(json);
    }
}

  主要就是JsonMapper.ToObject方法和JsonData类的运用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值