私はfastJSONを使用して、作成した JSON ファイルからデータを読み取ります (JSON ファイルには、Unity のプロジェクトのゲームのレベルのデータが含まれていますが、それは重要ではありません)。これは JSON コンテンツです。
{"1": {
"background": "background1.png",
"description": "A description of this level",
"enemies":
[{"name": "enemy1", "number": "5"},
{"name": "enemy2", "number": "2"}]},
"2": {
"background": "background1.png",
"description": "A description of this level",
"enemies":
[{"name": "enemy1", "number": "8"},
{"name": "enemy2", "number": "3"}]},
"3": {
"background": "background2.png",
"description": "A description of this level",
"enemies":
[{"name": "enemy2", "number": "5"},
{"name": "enemy3", "number": "3"},
{"name": "enemy4", "number": "1"}]}
}
これは私のコードです:
using UnityEngine;
using System.Collections.Generic;
using fastJSON;
public class LevelManager : MonoBehaviour {
private Dictionary<string, object> currentLevelData;
public TextAsset levelJSON;
public int currentLevel;
// Use this for initialization
void Start () {
currentLevelData = LevelElements (currentLevel);
if (currentLevelData != null) {
Debug.Log (currentLevelData["background"]);
Debug.Log (currentLevelData["description"]);
/* How iterate the "enemies" array */
} else {
Debug.Log ("Could not find level '" + currentLevel + "' data");
}
}
Dictionary<string, object> LevelElements (int level) {
string jsonText = levelJSON.ToString();
Dictionary<string, object> dictionary = fastJSON.JSON.Parse(jsonText) as Dictionary<string, object>;
Dictionary<string, object> levelData = null;
if (dictionary.ContainsKey (level.ToString ())) {
levelData = dictionary [level.ToString ()] as Dictionary<string, object>;
}
return levelData;
}
}
「敵」という名前の配列データをどのように反復するかわかりません。