Unity中序列化类为json格式

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

public class JsonTest : MonoBehaviour
{
    //[Serializable]
    public class Person
    {
        [SerializeField]
        public string name;
        public int age;
    }

    [Serializable]
    public class Student : Person
    {
        public string code;
    }

    [Serializable]
    public class SkillData
    {
        public List<Person> persons;
        public List<Student> students;
    }


    void Start()
    {
        //Write();
        Read();
    }

    private static void Read()
    {
        string json = File.ReadAllText("a.json");
        SkillData skillData = new SkillData();
        skillData = JsonUtility.FromJson<SkillData>(json);
        for (int i = 0; skillData.persons != null && i < skillData.persons.Count; ++i)
        {
            Debug.Log(skillData.persons[i].name + " " + skillData.persons[i].age);
        }

        for (int i = 0; skillData.students != null && i < skillData.students.Count; ++i)
        {
            Debug.Log(skillData.students[i].name + " " + skillData.students[i].age + "  " + skillData.students[i].code);
        }
    }

    private static void Write()
    {
        Person person = new Person(); person.name = "abc"; person.age = 10;
        Student student = new Student(); student.name = "abc"; student.age = 123; student.code = "java";
        Student student2 = new Student(); student2.name = "abc2"; student2.age = 1234; student2.code = "C#";
        SkillData skillData = new SkillData();
        skillData.persons = new List<Person>();
        skillData.students = new List<Student>();
        skillData.persons.Add(person);
        skillData.students.Add(student);
        skillData.students.Add(student2);

        string json = JsonUtility.ToJson(skillData);
        List<string> list = new List<string>();
        list.Add(json);
        File.WriteAllLines("a.json", list);
    }
}

json的序列化,使用unity自己的JsonUtility即可。
注意序列化的类,要加上:Serializable才能序列化到json中去:
Unity中序列化类为json格式_第1张图片

你可能感兴趣的:(Unity,unity)