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