UnityでJSONレスポンスを読み込む
サーバから返されるJSON形式のレスポンスをUnityでパースするサンプル
JsonFxのインストール
- http://www.jsonfx.net/download/ にアクセス
- JSON Serialization Library > JsonFx v1.x > Strongly-Signed Assemblies
- JsonSerializer_1.4.1003.3007_NetFx2.zip をダウンロード
- zipを展開してJsonFx.Json.dllをAssets/Pluginsにコピー
自分の環境(Unity4.3.3f1 Mono4.0.1)で正しく動くdllはこの組み合わせのみでした
JSON形式のレスポンスを返すURLを準備
http://127.0.0.1:8000/debug/sample/ で以下のJSON形式のレスポンスを返す
{
"name": "foo",
"age": 24,
"weight": 55.8,
"married": true,
"birthday": "1990-08-30 03:38:13",
"friends": [
{
"name": "bar",
"age": 25,
"weight": 50.2,
"married": false,
"birthday": "1989-04-01 15:02:47"
}
]
}
JsonFxでパースしてデシリアライズ
using UnityEngine;
using JsonFx;
using System;
using System.Collections;
using System.Collections.Generic;
public class JSONLoader : MonoBehaviour {
IEnumerator Start () {
WWW www = new WWW("http://127.0.0.1:8000/debug/sample/");
yield return www;
Person person = JsonFx.Json.JsonReader.Deserialize<Person>(www.text);
}
}
public class Person {
public string name;
public int age;
public float weight;
public bool married;
public DateTime birthday;
public List<Person> friends;
}
まとめ
パーサとしてMiniJSONという選択肢もありますが、パース後にデシリアライズまでやってくれるJsonFxを今回は選択