Json

Json格式必须遵循以下原则,不得违反.

一、必须以一个对象或者数组作为根节点;

以一个对象作为根节点 {"xx":"xx","xx":"xx","xx":{..},"xx":[]....}

以一个数组作为根节点   [{},{},...]

二、使用{}表示对象,[]表示数组,中间的属性使用键值对的方式;

三、键值对的键必须使用双引号“”包围住;

四、键值对中的值可以是对象,数组,数字,字符串,true/false, null(空值);

 

 

解析json

1.unity提供api JsonUtility(重点:会使用最后两个方法解析和写入)

using System;
string json = "{\"name\":\"小明\",\"age\":100,\"height\":12.5,\"isWoman\":false ,\"garde\":{\"name\":\"脚子\",\"socre\":100},\"arr\":[\"w\",\"z\"]}";

class UserInfo
{
    public string name;
    public int age;
    public float height;
    public bool isWoman;
    public Grade garde;
    public string[] arr;
}
//序列化
[Serializable]
public class Grade
{
    public string name;
    public int socre;
}

public class JsonDemo : MonoBehaviour
{

    void Start()
    {
        //ReadJson();
        //WriteJson();
    }

    //解析Json
    void ReadJson()
    {
        UserInfo user = JsonUtility.FromJson<UserInfo>(json);
        print(user.name);
        print(user.isWoman);
        print(user.height);
        print(user.age);
        print(user.garde.name);
        print(user.garde.socre);
        print(user.arr[0]);
    }
    //写Json
    void WriteJson()
    {
        UserInfo info = new UserInfo();
        info.name = "大脚";
        info.isWoman = false;
        info.age = 20;
        info.height = 130f;

        string json = JsonUtility.ToJson(info);
        print(json);
    }

2.使用外部LitJson.dll(可百度自行下载!
(手动把该文件放入unity的工程中Assets里面)

using LitJson;
public class JsonDemo : MonoBehaviour
{
    void Start()
    {
       
        StartCoroutine(downLoad());

    }

    //www下载Json
    IEnumerator downLoad()
    {
        WWW www;
        yield return www = new WWW("https://www.sojson.com/open/api/weather/json.shtml?city=深圳");
        if (www.isDone)
        {
            if (string.IsNullOrEmpty(www.error))
            {
                ReadJson(www.text);
            }
            else
            {
                print(www.error);
            }
        }
    }

    //解析Json
    void ReadJson(string json)
    {
        JsonData date = JsonMapper.ToObject(json);
        JsonData rq = date["date"];
        print(rq);
        JsonData key = date["data"];
        JsonData yes = key["ganmao"];
        print(yes);
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值