UnityでMiniJSONを使ってみる

ayumegu(プログラマー)
よろしくお願いします。

こんにちはあゆめぐです。

今回はWWWの通信まわりを軽くやってみます。
サーバー側はphpでシンプルなJSONデータ返す形でやってみます

##サーバーソース(php) サーバー側はphpでいきます。
user_idを渡すとユーザーデータのjsonがかえってくるイメージで。

if(isset($_REQUEST['user_id'])){
$data = array(
'status' => 'ok', // ステータス
'name' => 'あゆめぐ', // ニックネーム
'lv' => 1, // LV
'hp' => 10, // HP
'max_hp' => 10, // 最大HP
'now_exp' => 0, // 現在の経験値
'next_exp' => 10, // 次のレベルまでの経験値
'money' => 0, // お金
);
$json = json_encode($data);
print $json;
}else{
$data = array(
'status' => 'ng',
'msg' => 'エラー'
);
$json = json_encode($data);
print $json;
}

user_idを渡した場合

渡さない場合

サーバーにあげて直接urlをたたいたところ

##Unity側の実装 unityでjsonを扱うのに今回はMiniJSONを使用します
ダウンロードはこちら
ほかのJsonライブラリなどはこちらがわかりやすいです


このMiniJSON.csをUnityにインポート。
利用の際には
using MiniJSON;
を忘れずに!

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using MiniJSON;
public class TestWww : MonoBehaviour {
public readonly string baseUrl = "サーバーパス";
public readonly string getUserDataAPI = "phpファイル名";
private int user_id = 1;
void Start() {
StartCoroutine("GetUserData");
}
IEnumerator GetUserData(){
string url = baseUrl + getUserDataAPI + "?user_id=" + user_id;
WWW www = new WWW(url);
yield return www;
//JSONテキストのデコード
Dictionary<string,object> jsonData = MiniJSON.Json.Deserialize(www.text) as Dictionary<string,object>;
//データの取得
string name = (string)jsonData["name"];
Debug.Log (name);
}
}


はいname取得できました〜

##今回の感想 せっかくunityProかったので次はAssetBundleまわりやってみようかなと思います。