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中去:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值