0

LitJSONを使用して.json データをロードしています。また、foreach ループを使用していくつかのテスト コードを実行していますが、機能していません。

InvalidOperationException: Instance of JsonData is not a dictionary
LitJson.JsonData.EnsureDictionary()

(このエラーは foreach 行が実行されたときにスローされます)

    using UnityEngine;
    using LitJson;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;

    public void LoadData() {
        JsonReader reader = new JsonReader("[1, 2, 3, 4, 5]");
        JsonData data = JsonMapper.ToObject(reader);

        foreach (JsonData i in data) {
          Debug.Log("foreach: test");
        }
    }

ドキュメントの例(Ctrl+F "foreach"; ページの下部にあります) によると、このコードが機能するはずです (?)。

なぜこれがうまくいかないのか、誰にもアイデアがありますか? アドバイスをいただければ幸いです。

編集:解決策は、次のように IList オブジェクトにデータをキャストすることです。

foreach (JsonData i in data as IList) {
    Debug.Log("foreach: " + i)
}
4

1 に答える 1