[Unity][JSON][List][JSONUnity]多个角色的数据读取写入JSON数据

来源:互联网 发布:ubuntu修改镜像源 编辑:程序博客网 时间:2024/06/06 13:24


接着上一篇文章 继续 JSON 的存储,相关文章1

上一篇文章 讲的 是 一个 角色 存储 JSON 数据,读取写入。

本文讲的是 多个 角色  存储 JSON 数据,读取写入。


它支持ListList数组

由于Unity的 5.2以上版本 已经 支持 JSON ,也就是说 ,可以不用引入 外部 的 JSON.dll 库(LitJSON.dll),就可以

使用 unity 自带 的JSON 序列化工具。


新增的 代码主要是参考资料 1,2


显示结果如下图所示



代码如下图所示

using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using System.Linq;//.OfType//Using JSONUtility in Unity 5.3 - Working with JSON in Unitypublic class JSONDemon : MonoBehaviour {    string path;    string jsonString;    private void Start()    {        path = Application.streamingAssetsPath + "/Creature.json";        jsonString = File.ReadAllText(path);//读取数据        Creature yyy = JsonUtility.FromJson <Creature>(jsonString);        Debug.Log("-----------------------");        Debug.Log("        "+yyy.Name);        Debug.Log("        " + jsonString);        yyy.Level = 666;        string newyyy = JsonUtility.ToJson(yyy);        Debug.Log("-----------------------");        Debug.Log("        " + jsonString);        Debug.Log("        " + yyy.Level);        File.WriteAllText(path, newyyy);//写入数据        string jsonString1 = File.ReadAllText(path);        Creature yyy1 = JsonUtility.FromJson<Creature>(jsonString1);        Debug.Log("-----------------------");        Debug.Log("        " + jsonString1);        Debug.Log("        " + yyy1.Level);        Debug.Log("-----------------------");        List<PlayerData> saveListData = new List<PlayerData>();//*************************************        PlayerData saveData = new PlayerData();        saveData.name = "Programmer666";        saveData.score = 80;        saveListData.Add(saveData);//*************************************        PlayerData saveData1 = new PlayerData();//*************************************        saveData1.name = "Programmer777";        saveData1.score = 90;        saveListData.Add(saveData1);//*************************************        string jsonToSave = JsonHelper.ToJson(saveListData.ToArray());        PlayerPrefs.SetString("Data", jsonToSave);        PlayerPrefs.Save();//保存在 PlayerPrefs.Save() 本地化保存数据                string jsonToLoad = PlayerPrefs.GetString("Data");        //Load as Array        PlayerData[] _tempLoadListData = JsonHelper.FromJson<PlayerData>(jsonToLoad);        //Convert to List        List<PlayerData> loadListData = _tempLoadListData.OfType<PlayerData>().ToList();        for (int i = 0; i < loadListData.Count; i++)        {            Debug.Log("Got: " + loadListData[i].name);        }        Debug.Log("-----------------------"+jsonToLoad);        File.WriteAllText(Application.dataPath + "/Player.json", jsonToLoad);        string jsonStringK = File.ReadAllText(Application.dataPath + "/Player.json");        Debug.Log("-----------------------" + jsonStringK);        //Load as Array        PlayerData[] _tempLoadListData1 = JsonHelper.FromJson<PlayerData>(jsonStringK);        //Convert to List        List<PlayerData> loadListData1 = _tempLoadListData.OfType<PlayerData>().ToList();        for (int i = 0; i < loadListData1.Count; i++)        {            Debug.Log("777Got: " + loadListData1[i].name);        }    }}[System.Serializable]public class Creature{    public string Name;    public int Level;    public int[] Stats;}[System.Serializable]public class PlayerData{    public string name;    public int score;}





相关文章:

1.[Unity][JSON]读取写入玩家数据

2.

3.


参考资料:

1.

Unity JSON Add data to existing json data


2.

Serialize and Deserialize Json and Json Array in Unity


3.

4.



阅读全文
0 0