使用JsonUtility在Unity中写入json数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ultramansail/article/details/97650666

1.在Asset目录中新建一个脚本,命名为StudentItem,写入以下代码

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

[System.Serializable]
public class StudentItem
{
    public int id;
    public string name;
    public float score;

    public StudentItem(int _id, string _name, float _score)
    {
        id = _id;
        name = _name;
        score = _score;
    }
}

2.在Asset目录中新建一个脚本,命名为JsonCreator,写入以下代码

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

public class JsonCreator : MonoBehaviour
{
    List<StudentItem> list = new List<StudentItem>();

	void Start ()
    {
        //如果Asset目录下的StudentData.json文件不存在,则创建一个这样的文件
        if (!File.Exists(Application.dataPath + "/StudentData.json"))
        {
            File.CreateText(Application.dataPath + "/StudentData.json");
        }
        StudentItem student1 = new StudentItem(10001, "张三", 80f);
        StudentItem student2 = new StudentItem(10002, "李四", 60f);
        list.Add(student1);
        list.Add(student2);
        //写入数据
        string jsonData = "{\"student\":[\n";
        for (int i = 0; i < list.Count; i++)
        {
            if (i == list.Count - 1)
            {
                jsonData += JsonUtility.ToJson(list[i]) + "\n";
                break;
            }
            jsonData += JsonUtility.ToJson(list[i]) + "\n,";
        }
        jsonData += "]}";
        StreamWriter sw = new StreamWriter(Application.dataPath + "/StudentData.json");
        sw.WriteLine(jsonData);
        //注意写入数据以后关闭
        sw.Close();
	}
}

3.运行Unity,我们发现Asset目录下的StudentData.json文件已经写入完成

猜你喜欢

转载自blog.csdn.net/ultramansail/article/details/97650666
今日推荐