facebook twitter hatena line email

「Unity/Csharp/Json」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(json展開)
(json展開)
行3: 行3:
  
 
==json展開==
 
==json展開==
 +
using System;
 
  public class AuthScript : MonoBehaviour {
 
  public class AuthScript : MonoBehaviour {
 +
    [Serializable]
 
     class ResData {
 
     class ResData {
 
         public string status = "ok";
 
         public string status = "ok";
 
         public string notice = "";
 
         public string notice = "";
         public string user;
+
         public ResUser user;
 
     }
 
     }
 +
    [Serializable]
 
     class ResUser {
 
     class ResUser {
 
         public int id = 0;
 
         public int id = 0;
行17: 行20:
 
         Debug.Log("status=" + resData.status);
 
         Debug.Log("status=" + resData.status);
 
         Debug.Log("notice=" + resData.notice);
 
         Debug.Log("notice=" + resData.notice);
 +
        Debug.Log("notice=" + resData.user.name);
 
     }
 
     }
 
  }
 
  }
 +
 +
[Serializable]を追加して以下エラーとなる場合は
 +
error CS0246: The type or namespace name `Serializable' could not be found. Are you missing an assembly reference?
 +
using System;が足らない可能性がある。
  
 
==公式JsonUtility==
 
==公式JsonUtility==
 
https://docs.unity3d.com/ScriptReference/JsonUtility.html
 
https://docs.unity3d.com/ScriptReference/JsonUtility.html

2017年11月9日 (木) 12:44時点における版

jsonを扱うには

Unity 5.3からJsonUtilityが使えるようになったので、JsonUtilityを使った

json展開

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 = "";
    }
    void ExecJsonParse (string json) {
       ResData resData = JsonUtility.FromJson<ResData>(json);
       Debug.Log("status=" + resData.status);
       Debug.Log("notice=" + resData.notice);
       Debug.Log("notice=" + resData.user.name);
    }
}

[Serializable]を追加して以下エラーとなる場合は

error CS0246: The type or namespace name `Serializable' could not be found. Are you missing an assembly reference?

using System;が足らない可能性がある。

公式JsonUtility

https://docs.unity3d.com/ScriptReference/JsonUtility.html