[Unity][JSON][csv][JSONUnity]csv-JSON复杂数据的管理
来源:互联网 发布:2017年好听的网络歌曲 编辑:程序博客网 时间:2024/06/06 18:36
XML具有可读性,但是 较难维护,如果 是个人开发的话,使用 JSON 还是可以的。
和LUA的数组一样灵活。但是 很难维护JSON的数据(添加,删除)
这个时候 Excel表格的强大的可维护性就体现出来了。
Excel - csv - JSON
桌面空白处,鼠标右键--新建--Microsoft Office Excel 工作表(前提是安装了官方 的Windows Office ,包含Excel,本文不赘述。)
Excel 表格 数据如下所示
另存为 csv格式的文件
右键该文件,打开方式--记事本
复制该CSV文件的内容
打开参考资料1,粘贴到如下图所示的红色方框处,点击 按钮CSV TO JSON
可以把 转换 的结果 另存为 文件。我是直接 复制 转换的结果
因为Stats 数组有问题,显示不了。所以就删除了。
粘贴到这个JSON文件夹内。(粘贴后的结果如下右图所示)
{
"Items":[
]
}
JSONDemon.cs(代码根据 相关资料1改编的)
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 Array Creature[] _tempLoadListDataZ = JsonHelper.FromJson<Creature>(jsonStringZ); //Convert to List List<Creature> loadListDataZ = _tempLoadListDataZ.OfType<Creature>().ToList(); for (int i = 0; i < loadListDataZ.Count; i++) { Debug.Log("ZZZGot: " + loadListDataZ[i].Name+" Level:"+ loadListDataZ[i].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;}
JsonHelper.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;public static class JsonHelper{ public static T[] FromJson<T>(string json) { Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(json); return wrapper.Items; } public static string ToJson<T>(T[] array) { Wrapper<T> wrapper = new Wrapper<T>(); wrapper.Items = array; return JsonUtility.ToJson(wrapper); } public static string ToJson<T>(T[] array, bool prettyPrint) { Wrapper<T> wrapper = new Wrapper<T>(); wrapper.Items = array; return JsonUtility.ToJson(wrapper, prettyPrint); } [System.Serializable]// private class Wrapper<T> { public T[] Items; }}
显示结果
下一篇文章,在 JSON 中 保存 数组
[Unity][JSON][csv][JSONUnity]csv-JSON如何在CSV文件中保存数组并读取JSON数组
相关资料:
1.[Unity][JSON][List][JSONUnity]多个角色的数据读取写入JSON数据
2.
参考资料:
1.
Convert CSV to JSON
2.
在线JSON校验格式化工具(Be JSON)
3.
JSON在线解析及格式化验证 - JSON.cn
4.
阅读全文
0 0
- [Unity][JSON][csv][JSONUnity]csv-JSON复杂数据的管理
- [Unity][JSON][csv][JSONUnity]csv-JSON如何在CSV文件中保存数组并读取JSON数组
- [Unity][JSON][List][JSONUnity]多个角色的数据读取写入JSON数据
- ruby csv生成json数据
- d3数据可视化----CSV&JSON
- Unity传递复杂Json数据
- Mongodb数据导出到json或csv
- mongodb mongoexprt 导出数据 json csv格式
- 抓取数据为json文件,读入csv
- csv(txt)转json
- Python JSON、CSV
- json转换csv的python实现
- Python把csv中的数据整合成多条json数据插入列表的脚本
- python json转csv示例
- 读写csv、xml、mat、json
- python用json转csv
- 利用python将json数据转换为csv格式
- 把CSV数据合成json样书存入字典、列表并打印的python脚本
- 深入理解struts2的namespace
- StringTokenizer的用法及示例
- Codeforces Round #348 (div 2) C. Little Artem and Matrix
- LeetCode刷题(32)
- C++单例模式的一种实现
- [Unity][JSON][csv][JSONUnity]csv-JSON复杂数据的管理
- 欢迎使用CSDN-markdown编辑器
- 【转】手机锁屏收不到消息推送解决方案
- nyoj 3 多边形重心问题(数学)
- gcd + rmq + 二分遍历 hdu 5726
- 在浏览器地址栏输入百度网址之后的故事(面试必考)
- 异常处理
- kylin java查询
- 编译原理与编译构造 Intermadiate Code Generation