siki老师您好,在学习您的背包系统的时候遇到了json不能解析出中文的问题
只要含有汉字就会导致解析结果出现乱码,我是跟着您的视频一步一步做的,为什么老师的unity支持\u转义呢?,对了老师是用的不是Litjson里面JsonObject里面的.str,但是我用的JsonData只有tostring()可以用,这个没法儿弄,网上说Litjson只认unicode,还有啥utf-8的搞不懂。LitJson到底怎么解析中文内容呢?
itemList = new List<Item>();
//文本在unity中是TextAssest类型
TextAsset itemText = Resources.Load<TextAsset>("Item");
string itemjson = itemText.text;//物品信息的json格式
//这里jsonData是一个数组
JsonData jsonData = JsonMapper.ToObject(Resources.Load<TextAsset>("Item").text);
foreach (JsonData temp in jsonData)
{
string typeStr = temp["Type"].ToString();
Item.ItemType type = (Item.ItemType)System.Enum.Parse(typeof(Item.ItemType), typeStr);
int id = int.Parse(temp["Id"].ToString());
string name = temp["Name"].ToString();
Item.Quality quality = (Item.Quality)System.Enum.Parse(typeof(Item.Quality), temp["Quality"].ToString());
string description = temp["Description"].ToString();
int capacity = int.Parse(temp["Capacity"].ToString());
int buyPrize = int.Parse(temp["BuyPrize"].ToString());
int sellPrize = int.Parse(temp["SellPrize"].ToString());
string sprite = temp["Sprite"].ToString();
Item item = null;
switch (type)
{
case Item.ItemType.Consumable:
int hp = int.Parse(temp["Hp"].ToString());
int mp = int.Parse(temp["Mp"].ToString());
item = new Consumable(id, name, type, quality, description, capacity, buyPrize, sellPrize, sprite, hp, mp);
break;
case Item.ItemType.Equipment:
break;
case Item.ItemType.Weapon:
break;
case Item.ItemType.Material:
break;
default:
break;
}
itemList.Add(item);
Debug.Log(item.ID +" " + item.Name +" "+ item.Type +" "+ item.ItemQuality);
}