版权声明:本文为博主原创文章,未经博主允许不得转载。 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!继续学习之路。