您的位置:首页 > 移动开发 > Unity3D

[Unity][JSON][csv][JSONUnity]csv-JSON如何在CSV文件中保存数组并读取JSON数组

2017-11-13 22:03 1076 查看
接着上一篇 文章 继续,参考资料1使用的 参考资料3 的JSON 文件由于 参考资料2,3 表明 JSON 的数据是可以 存储 数组的。所以就进行测试复制 参考资料3 的 Item.json 的文件内容打开 CSV-JSON 转换的 网址,http://www.convertcsv.com/csv-to-json.htm使用JSON-CSV 转换的功能。发现CSV 文件 保存 数组 的格式是这样的在CSV中这样写,用 记事本打开如下图所示用http://www.convertcsv.com/csv-to-json.htm进行转换,结果如下所示[{"Name": 0,"Level": 99,"Stats": [1,11]},{"Name": 1,"Level": 66,"Stats": [2,22]},{"Name": 2,"Level": 77,"Stats": [3,33]},{"Name": 3,"Level": 88,"Stats": [4,44]},{"Name": 4,"Level": 33,"Stats": [5,55]}]打开Creature.json文件Creature.json文件 内容如下所示{"Items":[{"Name": 0,"Level": 99,"Stats": [1,11]},{"Name": 1,"Level": 66,"Stats": [2,22]},{"Name": 2,"Level": 77,"Stats": [3,33]},{"Name": 3,"Level": 88,"Stats": [4,44]},{"Name": 4,"Level": 33,"Stats": [5,55]}]}JSONDemon.cs的代码如下所示,在注释的那里,添加了一个循环。//添加 显示 数组 的循环
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";string jsonStringZ = File.ReadAllText(path);Debug.Log("-----------------------" + jsonStringZ);//Load as ArrayCreature[] _tempLoadListDataZ = JsonHelper.FromJson<Creature>(jsonStringZ);//Convert to ListList<Creature> loadListDataZ = _tempLoadListDataZ.OfType<Creature>().ToList();for (int i = 0; i < loadListDataZ.Count; i++){Debug.Log("ZZZGot: " + loadListDataZ[i].Name+"   Level:"+ loadListDataZ[i].Level);for (int j=0;j< loadListDataZ[i].Stats.Length ; j++)//添加 显示 数组 的循环{Debug.Log("ZZZGot Stats " +j+": "+ loadListDataZ[i].Stats[j]);}}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 ArrayPlayerData[] _tempLoadListData = JsonHelper.FromJson<PlayerData>(jsonToLoad);//Convert to ListList<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 ArrayPlayerData[] _tempLoadListData1 = JsonHelper.FromJson<PlayerData>(jsonStringK);//Convert to ListList<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;}显示结果如下所示。和 CSV 文件的内容一致参考资料:1.[Unity][JSON][csv][JSONUnity]csv-JSON复杂数据的管理2.[Unity&数组&List&JSON]创建一个字符串数组string[]类型的list3.[Unity&JSON]LitJSON 读取数组文件,多个数据,玩家得分表数据4.
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: