Unity之C#——数据持久化之Json

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lijianfex/article/details/78524843

Unity之C#——数据持久化之Json

      游戏开发中,难免有存档与数据传输需求,在unity中有自带的JsonUtility,也可以使用LitJson。这两这者的用法区别不大,在此我用unity中的JsonUtility演示一下用法。

场景视图如下:


代码如下

JsonDemo.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using System;//引入系统命名空间

[Serializable]//可序列化标识
public class Person
{
    public string Name;
    public int Age;
    
    public Person(string name,int age)
    {
        this.Name = name;
        this.Age = age;
    }
}


[Serializable]
public class Persons
{
    public Person[] persons;
    public Persons(Person[] p)
    {
        this.persons = p;
    }

}


public class JsonDemo : MonoBehaviour
{
    void Start()
    {
        JsonTest();
       
    }

    public void JsonTest()
    {
        //创建json
        Person p1 = new Person("李逍遥", 25);
        Person p2 = new Person("王小虎", 30);
        string p1JsonStr = JsonUtility.ToJson(p1);
        string p2JsonStr = JsonUtility.ToJson(p2);
        Debug.Log(p1JsonStr);
        Debug.Log(p2JsonStr);

        //创建json数组
        Person[] ps = new Person[] { p1, p2 };
        Persons p3 = new Persons(ps);
        string p3JsonStr = JsonUtility.ToJson(p3);
        Debug.Log(p3JsonStr);

        //解析json字符串
        Person p = JsonUtility.FromJson<Person>(p2JsonStr);
        Debug.Log(p.Name);

        //解析json数组字符串
        Persons s = JsonUtility.FromJson<Persons>(p3JsonStr);
        Debug.Log(s.persons[0].Name);
    }
    
}

运行结果:


go!继续学习之路。

猜你喜欢

转载自blog.csdn.net/lijianfex/article/details/78524843
今日推荐