|
|
(同じ利用者による、間の8版が非表示) |
行1: |
行1: |
− | ==jsonを扱い方==
| + | [[Unity/Csharp/Json/JsonUtility]] |
− | Unity 5.3からJsonUtilityが使えるようになったので、JsonUtilityを使う。 | + | |
| | | |
− | 使いたいpropertyだけ定義すればそれだけを取得することもできる。
| + | [[Unity/Csharp/Json/NewtonJson]] |
− | | + | |
− | ==json展開==
| + | |
− | json
| + | |
− | {"status":"ok","notice":"message1","user":{"id":1,"name":"taro","likes":["tyoko","prin"]}}
| + | |
− | | + | |
− | サンプル
| + | |
− | using System;
| + | |
− | public class AuthScript : MonoBehaviour {
| + | |
− | [Serializable]
| + | |
− | class ResData {
| + | |
− | public string status = "ok";
| + | |
− | public string notice = "";
| + | |
− | public ResUser user;
| + | |
− | }
| + | |
− | [Serializable]
| + | |
− | class ResUser {
| + | |
− | public int id = 0;
| + | |
− | public string name = "";
| + | |
− | public string[] likes;
| + | |
− | }
| + | |
− | void ExecJsonParse (string json) {
| + | |
− | ResData resData = JsonUtility.FromJson<ResData>(json);
| + | |
− | Debug.Log("status=" + resData.status);
| + | |
− | Debug.Log("notice=" + resData.notice);
| + | |
− | Debug.Log("user.name=" + resData.user.name);
| + | |
− | foreach (string like in resData.user.likes) {
| + | |
− | Debug.Log("like=" + like);
| + | |
− | }
| + | |
− | }
| + | |
− | }
| + | |
− | | + | |
− | 以下エラーとなる場合は[Serializable]が足りない場合がある
| + | |
− | NullReferenceException: Object reference not set to an instance of an object
| + | |
− | | + | |
− | | + | |
− | [Serializable]を追加して以下エラーとなる場合はusing System;が足らない可能性がある。
| + | |
− | error CS0246: The type or namespace name `Serializable' could not be found. Are you missing an assembly reference?
| + | |
− | | + | |
− | ==jsonからオブジェクトへ==
| + | |
− | User user = new User();
| + | |
− | string json = JsonUtility.ToJson( user );
| + | |
− | | + | |
− | ==公式JsonUtility==
| + | |
− | https://docs.unity3d.com/ScriptReference/JsonUtility.html
| + | |
2021年7月5日 (月) 15:32時点における最新版
Unity/Csharp/Json/JsonUtility
Unity/Csharp/Json/NewtonJson