json在unity游戏开发中十分常用,用于外部数据文件的读取与使用。
但是出现了一个问题,报错了?!怎么回事:
源代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.IO;//为了使用File
using System.Text;//为了使用Encoding
public class DataBase : MonoBehaviour {
private JsonData jsonData;
private List dataBase = new List();//存放转化后的数据
// Use this for initialization
void Start () {
//读取外部json文件,并将外部文件的编码改为中文,防止出现乱码
jsonData = JsonMapper.ToObject(File.ReadAllText(Application.dataPath + "/Json/jsonData.json", Encoding.GetEncoding("GB2312")) );
Construct();
Debug.Log(dataBase[0].Description);
}
// Update is called once per frame
void Update () {
}
void Construct()
{
for(int i = 0; i < jsonData.Count; i++)
{
//向dataBase列表添加数据
dataBase.Add(new Item((int)jsonData[i]["id"], jsonData[i]["title"].ToString(), (int)jsonData[i]["value"], jsonData[i]["description"].ToString()));
}
}
}
public class Item//将外部数据变为内部数据的类
{
public int ID { get; set; }
public string Title { get; set; }
public int Vaule { get; set; }
public string Description { get; set; }
public Item(int _id,string _title,int _value,string _description)
{
this.ID = _id;
this.Title = _title;
this.Vaule = _value;
this.Description = _description;
}
}
看了半天,也没有找出错误,好嘛,原来是json的外部文件写错格式了。
可是没有详细提示错误,怎么都看不出来啊。。。
当博主把最外面的 {} 改为 [] 后。。。
没问题,原来是这里出错了。。。这个问题对于刚接触的时候真的是火大
json也会由于另外问题出现这个错误,详解请参照https://blog.csdn.net/qq_34644914/article/details/80819415
json在线校验器:http://www.bejson.com/
json语法以及使用规则:http://www.w3school.com.cn/json/json_syntax.asp