teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

8

(追加2017-11-09 12:41)

2017/11/09 03:41

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -100,4 +100,18 @@
100
100
  ResData resData = JsonUtility.FromJson<ResData>(json);
101
101
  Debug.Log("user=" + resData.user);// ここが空
102
102
  Debug.Log("user=" + resData.user.id);// ここでパターン1の[*2]エラー
103
- ```
103
+ ```
104
+
105
+ ==4パターン目(追加2017-11-09 12:41)==
106
+ using System;
107
+ [Serializable]
108
+ class ResData {
109
+ public string status = "ok";
110
+ public string notice = "";
111
+ public ResUser user;
112
+ }
113
+ [Serializable]
114
+ class ResUser {
115
+ public int id = 0;
116
+ public string name = "";
117
+ }

7

ResData resData = JsonUtility.FromJson<ResData>(json);

2017/11/09 03:41

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -97,6 +97,7 @@
97
97
  ```
98
98
  TestScript.cs
99
99
  ```c#
100
+ ResData resData = JsonUtility.FromJson<ResData>(json);
100
101
  Debug.Log("user=" + resData.user);// ここが空
101
102
  Debug.Log("user=" + resData.user.id);// ここでパターン1の[*2]エラー
102
103
  ```

6

追記2017/11/9 11:56

2017/11/09 02:58

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -76,4 +76,27 @@
76
76
 
77
77
  ```
78
78
 
79
- 2階層目のuserのjson展開して取得する方法が知りたいです。
79
+ 2階層目のuserのjson展開して取得する方法が知りたいです。
80
+
81
+ ==3パターン目(追記2017/11/9 11:56)==
82
+ ResDataとResUserを個別のクラスにしましたがパターン1と同様のエラーでした。
83
+ ResData.cs
84
+ ```c#
85
+ public class ResData {
86
+ public string status = "ok";
87
+ public string notice = "";
88
+ public ResUser user;
89
+ }
90
+ ```
91
+ ResUser.cs
92
+ ```c#
93
+ public class ResUser {
94
+ public int id = 0;
95
+ public string name = "";
96
+ }
97
+ ```
98
+ TestScript.cs
99
+ ```c#
100
+ Debug.Log("user=" + resData.user);// ここが空
101
+ Debug.Log("user=" + resData.user.id);// ここでパターン1の[*2]エラー
102
+ ```

5

tててst

2017/11/09 02:57

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -25,13 +25,14 @@
25
25
 
26
26
  以下のように2階層にした場合に2階層目のuser情報が取得できませんでした。
27
27
 
28
- ==1パターン目==
28
+
29
29
  ```ここに言語を入力
30
30
  受信json
31
31
  {"status":"ok","notice":"-","user":{"name":"taro","id":4}}
32
32
 
33
33
  ```
34
34
 
35
+ ==1パターン目==
35
36
  ```c#
36
37
  class TestScript : MonoBehaviour {
37
38
  class ResData {

4

うに

2017/11/09 02:34

投稿

kaji
kaji

スコア648

title CHANGED
@@ -1,1 +1,1 @@
1
- gunityで階層のあるjsonを展開する方法
1
+ unityで階層のあるjsonを展開する方法
body CHANGED
File without changes

3

2階層目のuserのjson展開して取得する方法が知りたいです。

2017/11/09 02:34

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -75,4 +75,4 @@
75
75
 
76
76
  ```
77
77
 
78
- 2階層目のuserのjson取得する方法が知りたいです。
78
+ 2階層目のuserのjson展開して取得する方法が知りたいです。

2

2階層目のuserのjsonを取得する方法が知りたいです。

2017/11/09 02:31

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -73,4 +73,6 @@
73
73
  }
74
74
  Debug.Log("user=" + resData.user);// ここが空
75
75
 
76
- ```
76
+ ```
77
+
78
+ 2階層目のuserのjsonを取得する方法が知りたいです。

1

っっg

2017/11/09 02:30

投稿

kaji
kaji

スコア648

title CHANGED
@@ -1,1 +1,1 @@
1
- unityで階層のあるjsonを展開する方法
1
+ gunityで階層のあるjsonを展開する方法
body CHANGED
@@ -17,9 +17,9 @@
17
17
  }
18
18
  // 略
19
19
  void ExecJsonParse (string json) {
20
- ResData resData = JsonUtility.FromJson<ResData>(json);
20
+ ResData resData = JsonUtility.FromJson<ResData>(json);
21
- Debug.Log("status=" + resData.status);
21
+ Debug.Log("status=" + resData.status);
22
- Debug.Log("notice=" + resData.notice);
22
+ Debug.Log("notice=" + resData.notice);
23
23
  }
24
24
  ```
25
25
 
@@ -45,24 +45,24 @@
45
45
  }
46
46
  // 略
47
47
  void ExecJsonParse (string json) {
48
- ResData resData = JsonUtility.FromJson<ResData>(json);
48
+ ResData resData = JsonUtility.FromJson<ResData>(json);
49
- Debug.Log("status=" + resData.status);
49
+ Debug.Log("status=" + resData.status);
50
- Debug.Log("notice=" + resData.notice);
50
+ Debug.Log("notice=" + resData.notice);
51
- Debug.Log("user=" + resData.user);// *1
51
+ Debug.Log("user=" + resData.user);// *1
52
- Debug.Log("user.id=" + resData.user.id); // *2
52
+ Debug.Log("user.id=" + resData.user.id); // *2
53
53
  }
54
54
  ```
55
55
 
56
56
  *1のところは空でした。
57
57
 
58
- *2のところで
58
+ *2のところで以下エラーメッセージがでました。
59
59
  ```ここに言語を入力
60
60
  NullReferenceException: Object reference not set to an instance of an object
61
61
  ```
62
- とエラーメッセージがでました。
63
62
 
64
63
 
65
64
 
65
+
66
66
  ==2パターン目==
67
67
  以下のようにuserの型をstringにしてuserの部分のみjsonで取得できるのかな?と試してみましたが、userjsonには空データが戻って来ました。
68
68
  ```ここに言語を入力