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

回答編集履歴

1

見直しキャンペーン中

2023/07/18 21:49

投稿

TN8001
TN8001

スコア10166

answer CHANGED
@@ -1,62 +1,62 @@
1
- jsonの外側の部分("quotes")も作れば、`JsonConvert.DeserializeObject`一発でデシリアライズできます。
2
-
3
- Listと個々のPairがごっちゃになっているようです。
4
- ローカル変数(var pair1)はメソッドを抜けたら消えてしまいます。
5
-
6
- ```C#
7
- using System;
8
- using System.Collections.Generic;
9
- using System.Linq;
10
- using System.Windows.Forms;
11
- using Newtonsoft.Json;
12
-
13
- namespace Questions237472
14
- {
15
- public partial class Form1 : Form
16
- {
17
- private List<Pair> pairs;
18
-
19
- public Form1()
20
- {
21
- InitializeComponent();
22
- button1.Text = "USD/JPY";
23
- }
24
-
25
- private void Form1_Load(object sender, EventArgs e)
26
- {
27
- var fileUrl = @"https://www.gaitameonline.com/rateaj/getrate";
28
- var root = JsonConvert.DeserializeObject<Root>(DownloadString(fileUrl));
29
- pairs = root.quotes;
30
- }
31
-
32
- private void button1_Click(object sender, EventArgs e)
33
- {
34
- var pair1 = pairs.First(x => x.currencyPairCode == "USDJPY");
35
- textBox1.AppendText("高値は" + pair1.high + "です");
36
- }
37
-
38
- private string DownloadString(string url)
39
- {
40
- using(var webClient = new System.Net.WebClient())
41
- {
42
- return webClient.DownloadString(url);
43
- }
44
- }
45
-
46
- private class Root
47
- {
48
- public List<Pair> quotes { get; set; }
49
- }
50
-
51
- private class Pair
52
- {
53
- public double high { get; set; }
54
- public double open { get; set; }
55
- public double bid { get; set; }
56
- public string currencyPairCode { get; set; }
57
- public double ask { get; set; }
58
- public double low { get; set; }
59
- }
60
- }
61
- }
1
+ jsonの外側の部分(`"quotes"`)も作れば、`JsonConvert.DeserializeObject`一発でデシリアライズできます。
2
+
3
+ `List`と個々の`Pair`がごっちゃになっているようです。
4
+ ローカル変数(`var pair1`)はメソッドを抜けたら消えてしまいます。
5
+
6
+ ```cs
7
+ using System;
8
+ using System.Collections.Generic;
9
+ using System.Linq;
10
+ using System.Windows.Forms;
11
+ using Newtonsoft.Json;
12
+
13
+ namespace Questions237472
14
+ {
15
+ public partial class Form1 : Form
16
+ {
17
+ private List<Pair> pairs;
18
+
19
+ public Form1()
20
+ {
21
+ InitializeComponent();
22
+ button1.Text = "USD/JPY";
23
+ }
24
+
25
+ private void Form1_Load(object sender, EventArgs e)
26
+ {
27
+ var fileUrl = @"https://www.gaitameonline.com/rateaj/getrate";
28
+ var root = JsonConvert.DeserializeObject<Root>(DownloadString(fileUrl));
29
+ pairs = root.quotes;
30
+ }
31
+
32
+ private void button1_Click(object sender, EventArgs e)
33
+ {
34
+ var pair1 = pairs.First(x => x.currencyPairCode == "USDJPY");
35
+ textBox1.AppendText("高値は" + pair1.high + "です");
36
+ }
37
+
38
+ private string DownloadString(string url)
39
+ {
40
+ using(var webClient = new System.Net.WebClient())
41
+ {
42
+ return webClient.DownloadString(url);
43
+ }
44
+ }
45
+
46
+ private class Root
47
+ {
48
+ public List<Pair> quotes { get; set; }
49
+ }
50
+
51
+ private class Pair
52
+ {
53
+ public double high { get; set; }
54
+ public double open { get; set; }
55
+ public double bid { get; set; }
56
+ public string currencyPairCode { get; set; }
57
+ public double ask { get; set; }
58
+ public double low { get; set; }
59
+ }
60
+ }
61
+ }
62
62
  ```