回答編集履歴

7

シリアライズではなくデシリアライズ。+誤字修正

2019/02/25 02:47

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- Json.NETで提示されたJsonコードをC#で取り扱う場合はJsonの構造に合わせてクラスの定義を行います。
23
+ Json.NETで提示されたJsonコードを取り扱う場合はJsonの構造に合わせてクラスの定義を行います。
24
24
 
25
25
  ([json2csharp](http://json2csharp.com/)というサイトでクラス定義に変換しました)
26
26
 
@@ -108,7 +108,7 @@
108
108
 
109
109
 
110
110
 
111
- あとはJsonを`Forecast`または`RootObject`クラスのインスタンスとして取り込み、メンバーにアクセスすれば良いです。インスタンスとして取り込むことをシリアライズって言います。
111
+ あとはJsonを`Forecast`または`RootObject`クラスのインスタンスとして取り込み、メンバーにアクセスすれば良いです。インスタンスとして取り込むことをシリアライズって言います。
112
112
 
113
113
 
114
114
 

6

表記揺れが気になりました

2019/02/25 02:47

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  準備が出来次第、次の手順を行います。
12
12
 
13
- 0. jsonに対応するオブジェクトの定義
13
+ 0. Jsonに対応するオブジェクトの定義
14
14
 
15
- 0. json-オブジェクト間の変換(シリアライズ・デシリアライズ)を行い取得したデータにアクセスする
15
+ 0. Json-オブジェクト間の変換(シリアライズ・デシリアライズ)を行い取得したデータにアクセスする
16
16
 
17
17
 
18
18
 
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- Json.NETで、提示されたjsonコードをC#で取り扱う場合はJsonの構造に合わせてクラスの定義を行います。
23
+ Json.NETで、提示されたJsonコードをC#で取り扱う場合はJsonの構造に合わせてクラスの定義を行います。
24
24
 
25
25
  ([json2csharp](http://json2csharp.com/)というサイトでクラス定義に変換しました)
26
26
 

5

類似質問と書いたものは、あまり類似してなかったので消しました。

2019/02/21 05:07

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -144,6 +144,4 @@
144
144
 
145
145
  参考:[UnityでJson.NETを使う](http://spi8823.hatenablog.com/entry/2016/04/16/001641)
146
146
 
147
- 類似質問:[Unityのc#でJsonのデータをデシリアライズしたいのですがうまくできずに困っております](https://teratail.com/questions/70446)
148
-
149
147
  他のライブラリ:[[C#] C#でJSONを扱う方法まとめ](https://dev.classmethod.jp/etc/c-sharp-json/)

4

表現の訂正

2019/02/21 05:05

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -1,6 +1,6 @@
1
- C#でJsonを取り扱うのであれば、Json.NET等のライブラリを使うことが基本と思います。
1
+ C#でJsonを取り扱うのであれば、Json.NET等のライブラリを使うことが基本的に多いと思います。
2
2
 
3
- 環境準備ため以下の手順が必要になります。
3
+ 環境準備するため以下の手順が必要になります。
4
4
 
5
5
  0. http://www.newtonsoft.com/jsonへ行って、zipをダウンロード
6
6
 
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- 準備が出来ましたら、次の工程行います。
11
+ 準備が出来次第、次の手順を行います。
12
12
 
13
13
  0. jsonに対応するオブジェクトの定義
14
14
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 詳細について以下に書きますので、ご参考にしてください。
19
+ 詳細について以下に記載しますので、ご参考にしてください。
20
20
 
21
21
 
22
22
 

3

誤字

2019/02/21 04:20

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 詳細について以下に書きますので、ご参考ください。
19
+ 詳細について以下に書きますので、ご参考にしてください。
20
20
 
21
21
 
22
22
 

2

文法の修正と少し補足

2019/02/21 04:18

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -1,6 +1,6 @@
1
- UnityでJsonを取り扱うのであれば、Json.NET等のライブラリを使うことが基本かと思います。
1
+ C#でJsonを取り扱うのであれば、Json.NET等のライブラリを使うことが基本かと思います。
2
2
 
3
-
3
+ 環境準備のため以下の手順が必要になります。
4
4
 
5
5
  0. http://www.newtonsoft.com/jsonへ行って、zipをダウンロード
6
6
 
@@ -8,11 +8,15 @@
8
8
 
9
9
 
10
10
 
11
- 参考:[UnityでJson.NETを使う](http://spi8823.hatenablog.com/entry/2016/04/16/001641)
11
+ 準備が出来ましたら、次の工程行います。
12
12
 
13
- 類似質問:[Unityのc#でJsonのデータをデシリアライズしたいのですがうまくできず困っておりま](https://teratail.com/questions/70446)
13
+ 0. jsonに対応るオブジェクトの定義
14
14
 
15
- 他のライブラリ:[[C#] C#でJSONを扱う方法まとめ](https://dev.classmethod.jp/etc/c-sharp-json/)
15
+ 0. json-オブジェクト間の変換(シリアライズ・デシリアライズ)を行い取得したデータにアクセスする
16
+
17
+
18
+
19
+ 詳細について以下に書きますので、ご参考ください。
16
20
 
17
21
 
18
22
 
@@ -104,7 +108,7 @@
104
108
 
105
109
 
106
110
 
107
- あとはjsonを`Forecast`または`RootObject`クラスのインスタンスとして取り込み、メンバーにアクセスすれば良いです。インスタンスとして取り込むことをシリアライズなんて言ったりします。
111
+ あとはJsonを`Forecast`または`RootObject`クラスのインスタンスとして取り込み、メンバーにアクセスすれば良いです。インスタンスとして取り込むことをシリアライズて言ます。
108
112
 
109
113
 
110
114
 
@@ -135,3 +139,11 @@
135
139
  }
136
140
 
137
141
  ```
142
+
143
+
144
+
145
+ 参考:[UnityでJson.NETを使う](http://spi8823.hatenablog.com/entry/2016/04/16/001641)
146
+
147
+ 類似質問:[Unityのc#でJsonのデータをデシリアライズしたいのですがうまくできずに困っております](https://teratail.com/questions/70446)
148
+
149
+ 他のライブラリ:[[C#] C#でJSONを扱う方法まとめ](https://dev.classmethod.jp/etc/c-sharp-json/)

1

コード例を追加

2019/02/21 04:16

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -13,3 +13,125 @@
13
13
  類似質問:[Unityのc#でJsonのデータをデシリアライズしたいのですがうまくできずに困っております](https://teratail.com/questions/70446)
14
14
 
15
15
  他のライブラリ:[[C#] C#でJSONを扱う方法まとめ](https://dev.classmethod.jp/etc/c-sharp-json/)
16
+
17
+
18
+
19
+ Json.NETで、提示されたjsonコードをC#で取り扱う場合はJsonの構造に合わせてクラスの定義を行います。
20
+
21
+ ([json2csharp](http://json2csharp.com/)というサイトでクラス定義に変換しました)
22
+
23
+ ```C#
24
+
25
+ public class Min
26
+
27
+ {
28
+
29
+ public string celsius { get; set; }
30
+
31
+ public string fahrenheit { get; set; }
32
+
33
+ }
34
+
35
+
36
+
37
+ public class Max
38
+
39
+ {
40
+
41
+ public string celsius { get; set; }
42
+
43
+ public string fahrenheit { get; set; }
44
+
45
+ }
46
+
47
+
48
+
49
+ public class Temperature
50
+
51
+ {
52
+
53
+ public Min min { get; set; }
54
+
55
+ public Max max { get; set; }
56
+
57
+ }
58
+
59
+
60
+
61
+ public class Image
62
+
63
+ {
64
+
65
+ public int width { get; set; }
66
+
67
+ public string url { get; set; }
68
+
69
+ public string title { get; set; }
70
+
71
+ public int height { get; set; }
72
+
73
+ }
74
+
75
+
76
+
77
+ public class Forecast
78
+
79
+ {
80
+
81
+ public string dateLabel { get; set; }
82
+
83
+ public string telop { get; set; }
84
+
85
+ public string date { get; set; }
86
+
87
+ public Temperature temperature { get; set; }
88
+
89
+ public Image image { get; set; }
90
+
91
+ }
92
+
93
+
94
+
95
+ public class RootObject
96
+
97
+ {
98
+
99
+ public List<Forecast> forecasts { get; set; }
100
+
101
+ }
102
+
103
+ ```
104
+
105
+
106
+
107
+ あとはjsonを`Forecast`または`RootObject`クラスのインスタンスとして取り込み、メンバーにアクセスすれば良いです。インスタンスとして取り込むことをシリアライズなんて言ったりします。
108
+
109
+
110
+
111
+ コード例は次になります。
112
+
113
+
114
+
115
+ ```C#
116
+
117
+ public void Hoge(){
118
+
119
+ using (var sr = new StreamReader(jsonファイルのパス, Encoding.UTF8))
120
+
121
+ {
122
+
123
+ var data = sr.ReadToEnd();
124
+
125
+ var obj = JsonConvert.DeserializeObject<RootObject>(data);
126
+
127
+
128
+
129
+ //temperatureの中のminの中のfahrenheitを取得
130
+
131
+ Console.WriteLine(obj.forecasts.First().temperature.min.fahrenheit);
132
+
133
+ }
134
+
135
+ }
136
+
137
+ ```