【Unity】そういえばUnityでJSONって簡単に触れるの?どうなの? 数分後「簡単なんですけどぉー!」 JsonUtilityすごいぜ!って話
おはようございます。
今日は朝から1日雨のようですね。
昼に歯医者があってチョーめんどい坂内っす。
そういえば今UnityでJSON使うの簡単らしいっすね?
でもどうなの?JSON触ったことないし!
ってことで、ちょっと気になったので触ってみました。
まずはJSONにあるデータ型についてです。
〇数値
〇文字列
〇真偽値
〇配列
〇オブジェクト
〇null
があるようです。
また、配列とオブジェクト(連想配列)は、ネスト(入れ子)構造で表現する事ができます。
まぁ根本はXMLとかと同じなんすよね?そうなの?
なんか適当にJSONを作ってみました。
こんなのをUnityで読み込んでみましょう。
上記のテキストファイルをUTF-8で「test1.txt」という名前でResourcesフォルダの下に置きます。
※ちなみにはじめはJISだったんだけど、Unityで読み込んだら日本語取れなかったんで、UTFにしました。
まずは、Jsonで渡されるItemを格納する用クラスを生成します。
【users】
適当にテキストを1個用意して、以下のコードをCanvasでもCameraでもどっかに貼り付けます。

【JsonUtil】
はーい!簡単!

出ました出ました。
JsonUtilityという素敵なAPIがUnity5.3から入ったようですね!
逆にJSONにするにはJsonUtility.ToJson()を使えばできるようです。
【JsonUtil】
ボタンを押すとOnClickToJSONが呼ばれるようにして、上記コードを呼ぶとこんな感じ!

素晴らしいっすね!
でもこれってクラス(今回はusersクラスを用意)し、そのフィールドだけが対象になっています。
なので、しらないものがJSONに入っていると無視されるっぽいっす。
エラーが出ないだけましですよね!想定内の物のみを取得します。
これで色々とJSONのファイルをいじっていけますね!
そんな感じで、ネタがないので無理やり書いてみました!
あでゅ~ノシ
今日は朝から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)
« 【Unity】AudioClipのサンプリングレートって変えられるんですね。 | 【Unity】透過のある画像をボタンにしたときとかね。 »
コメント
| h o m e |