07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】そういえばUnityでJSONって簡単に触れるの?どうなの? 数分後「簡単なんですけどぉー!」 JsonUtilityすごいぜ!って話 

おはようございます。
今日は朝から1日雨のようですね。
昼に歯医者があってチョーめんどい坂内っす。

そういえば今UnityでJSON使うの簡単らしいっすね?
でもどうなの?JSON触ったことないし!

ってことで、ちょっと気になったので触ってみました。

まずはJSONにあるデータ型についてです。
〇数値
〇文字列
〇真偽値
〇配列
〇オブジェクト
〇null

があるようです。
また、配列とオブジェクト(連想配列)は、ネスト(入れ子)構造で表現する事ができます。
まぁ根本はXMLとかと同じなんすよね?そうなの?

なんか適当にJSONを作ってみました。
{
"name":"よしだ",
"age":18
}


こんなのをUnityで読み込んでみましょう。
上記のテキストファイルをUTF-8で「test1.txt」という名前でResourcesフォルダの下に置きます。
※ちなみにはじめはJISだったんだけど、Unityで読み込んだら日本語取れなかったんで、UTFにしました。

まずは、Jsonで渡されるItemを格納する用クラスを生成します。
【users】
using System;

[Serializable]
public class users {
public string name;
public int age;
}


適当にテキストを1個用意して、以下のコードをCanvasでもCameraでもどっかに貼り付けます。



【JsonUtil】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class JsonUtil : MonoBehaviour {

public Text txtString;

void Start() {
TextAsset txtData = Resources.Load("Json/test1");
string textJson = txtData.text;

users item = JsonUtility.FromJson(textJson);

txtString.text = item.name + "\r\n" + item.age;
}
}


はーい!簡単!


出ました出ました。

JsonUtilityという素敵なAPIがUnity5.3から入ったようですね!

逆にJSONにするにはJsonUtility.ToJson()を使えばできるようです。

【JsonUtil】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class JsonUtil : MonoBehaviour {

public Text txtString;

void Start() {
TextAsset txtData = Resources.Load("Json/test1");
string textJson = txtData.text;

users item = JsonUtility.FromJson(textJson);

txtString.text = item.name + "\r\n" + item.age;
}

public void OnClickToJSON() {
users item = new users();
item.name = "はるしおん";
item.age = 4;

string json = JsonUtility.ToJson(item);
Debug.Log(json);
}
}


ボタンを押すとOnClickToJSONが呼ばれるようにして、上記コードを呼ぶとこんな感じ!



素晴らしいっすね!

でもこれってクラス(今回はusersクラスを用意)し、そのフィールドだけが対象になっています。
なので、しらないものがJSONに入っていると無視されるっぽいっす。
エラーが出ないだけましですよね!想定内の物のみを取得します。

これで色々とJSONのファイルをいじっていけますね!

そんな感じで、ネタがないので無理やり書いてみました!
あでゅ~ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/387-649a15b1
この記事にトラックバックする(FC2ブログユーザー)