在我们项目中,可能经常用到解析 Json,
但有时也需要存档的工作。那该怎样生成Json呢?
下面我们就以上节 Json 例子为例,来讲解如何代码生成 Json
🟥 要生成的 Json
本节,我们会来生成这样一个Json字符串:
[{“name”:“小明”,“Age”:12,“班级”:“一班”},{“name”:“小红”,“Age”:13,“Kungfu”:“三班”}]
它跟下面的Json是一样的,只是格式不同。
[ { "name":"小明", "age":12, "grade":"一班" }, { "name":"小红", "age":13, "grade":"三班" } ]
🟧 创建 Json 方法
按照如下方式,我们便可以生成上面的 Json
using System; using UnityEngine; [Serializable] public class Person { public string name; public string age; public string grade; } [Serializable] public class Persons { public Person[] person; } public class NewBehaviourScript : MonoBehaviour { private void Start() { Person person0=new Person(); person0.name = "小明"; person0.age = "12"; person0.grade = "一班"; Person person1=new Person(); person1.name = "小红"; person1.age = "13"; person1.grade = "三班"; Persons persons=new Persons(); persons.person = new[] {person0, person1}; string jsonValue = JsonUtility.ToJson(persons); Debug.Log(jsonValue); } }
🟨 解析 Json 方法
解析的类跟Json是有对应关系的。若大家忘了解析的类是怎样写出来的,
参阅博客:传送门
using System; using UnityEngine; [Serializable] public class Person { public string name; public string age; public string grade; } [Serializable] public class Persons { public Person[] person; } public class NewBehaviourScript : MonoBehaviour { private void Start() { //这是我们的Json,可以用上方类进行解析。 //[{"name":"小明","Age":12,"班级":"一班"},{"name":"小红","Age":13,"Kungfu":"三班"}] // 因为是在C#代码中,“要替换成’ string jsonValue="[{‘name‘:‘小明‘,‘Age‘:12,‘班级‘:‘一班‘},{‘name‘:‘小红‘,‘Age‘:13,‘Kungfu‘:‘三班‘}]"; Persons persons = JsonUtility.FromJson<Persons>(jsonValue); Debug.Log(persons.person[1].name); } }