json:JSON是一种通用的数据格式。
Json的数据类型:JSON的内容是用文本表示的,便于直接阅读。
Json可以方便的表示以下数据类型:
1:数字。2:字符串。3:bool值。4:null。5:数组。6:对象(每组数据是键值队的形式,要求键要为字符串,不能是数字)。
电子表格与Json:
当数据量较大时,使用Json进行数据的保存,内容十分长,且包含多层嵌套,不易阅读。
现在流行的游戏配置表格:excel以及数据库。
游戏设计师准备好了配置数据后,还需要将原始数据 转化为适合程序直接读取的数据。这时可以借用csv,以及json。
下载LItJson:
启动脚本编辑器,打开工具栏,点击NUGet包管理器,点击解决方案的NuGet包管理器。搜索LitJson,点击下载。在该项目的package文件夹中可以找到LItJson,点击进入找到需要版本的Litjson。一般为2.1版本。复制,并粘贴到plugins(需要在asset文件夹下创建)。
读取json的两种方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using LitJson;
string path;
void Start{
path = Application.persistentDataPath + "/PlayerData.json";
}
private void player_json(string path){
//读取json代码,并将其转化为对象
TextAsset jsonText = Resources.Load<TextAsset>("PlayerData");
playdata p = JsonMapper.ToObject<playdata>(jsonText.text);
}
private void player_json2(string path){
//根据文件路径创建数据流
StreamReader sr = new StreamReader(path);
//读取Json数据
string ReadStr = sr.ReadToEnd();
//关闭数据流
sr.Close();
//将获取到的Json数据转为Datas类数据,使用到LitJson库
playdata tempDatas = JsonMapper.ToObject<playdata>(ReadStr);
}
将数据储存为json
public class playdata {
public string name;
public int _difficult;
public int _normal;
public int score;
public string degree;
}
private void player_json(string path){
playdata p =new playdata();
p.name="clark";
p._difficult=10;
p._normar=10;
p.score=20;
p.degree="diff"
string json = JsonMapper.ToJson(p);
Debug.Log(p.name);
using (FileStream fs=new FileStream(path,FileMode.Create)){
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
Debug.Log("json写入了" + path);
}