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

来源:互联网 发布:2017年好听的网络歌曲 编辑:程序博客网 时间:2024/05/17 08:46

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!继续学习之路。