Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
json解析问题
冬云发起了问答2017-06-07
1
回复
731
浏览

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);
        }

 

 

所有回复
  • siki 2017-06-07

    选择文本文件另存为 ,然后把编码选择为 UTF-8,这样就使用UTF8的编码了,

    修改完编码后,再把内容复制进去,保存,这样就有可以了

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!