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

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

背包系统使用jsonMapper去解析
冫爻刂发起了问答2016-12-28
2
回复
4800
浏览

代码如下

void ParseItemJson ()
    {
        itemList = new List<Item> ();
        //文本在Unity中为TextAsset类型
        TextAsset itemText = Resources.Load<TextAsset> ("Items");
        string itemJson = itemText.text;//物品信息的json格式
//        Debug.Log (itemJson);     是可以读取到json内容的
        //使用jsonMapper去解析json文本
        JsonData jsonData = JsonMapper.ToObject(itemJson);
        foreach (JsonData temp in jsonData) {
            JsonData id = temp ["id"];
            int i = (int)id;
            Debug.Log (i);
        }

    }

在start方法调用该方法,然后报错为

InvalidOperationException: Instance of JsonData is not a dictionary
LitJson.JsonData.EnsureDictionary ()
LitJson.JsonData.System.Collections.Specialized.IOrderedDictionary.GetEnumerator ()
LitJson.JsonData.System.Collections.IDictionary.GetEnumerator ()
InventoryManager.ParseItemJson () (at Assets/Scripts/InventoryManager.cs:43)
InventoryManager.Start () (at Assets/Scripts/InventoryManager.cs:31)

但是jsondata本就是一个数组,为什么用foreach循环遍历无法读取呢?

所有回复
发表回复
你还没有登录,请先 登录或 注册!