Json.NET は ダウンロードボタンで NuGet 用のコマンドラインが表示されます Json.NET でオブジェクトに変換するだけならば、 { set; get; } でプロパティ化せずとも単純な public な変数の定義で可能です。ここでは、プロパティの名前の一覧を配列で準備して foreach でデータを取得できるように { set; get; } でプロパティ化しています。
using Newtonsoft.Json;
using System;
using System.Net;
using System.Reflection;
using System.Text;
using System.Web;
using System.Windows.Forms;
namespace WebJson
{
public partial class Form1 : Form
{
// フィールド名一覧
private string[] field_names = {"社員コード", "氏名", "フリガナ", "所属", "性別", "作成日", "更新日", "給与", "手当", "管理者" };
public Form1()
{
InitializeComponent();
}
private void action_Click(object sender, EventArgs e)
{
WebClient webClient = new WebClient();
webClient.Encoding = Encoding.GetEncoding("utf-8");
// DownloadStringCompleted の引数は、https://docs.microsoft.com/ja-jp/dotnet/api/system.net.downloadstringcompletedeventhandler
webClient.DownloadStringCompleted += (object _sender, DownloadStringCompletedEventArgs _e) => {
Console.WriteLine(_e.Result);
// Json.NET は、NuGet でインストールします : Install-Package Newtonsoft.Json
// https://www.newtonsoft.com/json
JsonData[] data = JsonConvert.DeserializeObject<JsonData[]>(_e.Result);
// 画面にデータをセット
name.Text = data[0].氏名;
furi.Text = data[0].フリガナ;
// プロパティ名一覧より、データを取得
PropertyInfo property;
string value;
foreach (string name in field_names)
{
property = typeof(JsonData).GetProperty(name);
value = property.GetValue(data[0]).ToString();
Console.WriteLine(value);
}
};
// HttpUtility.UrlEncode は System.Web を参照する必要があります
string access_url_query_string = $"https://lightbox.sakura.ne.jp/demo/json/syain_api_bind.php?name={HttpUtility.UrlEncode("田", Encoding.UTF8)}";
// WEB データ取得開始
webClient.DownloadStringAsync(new Uri(access_url_query_string));
}
private class JsonData
{
// PropertyInfo.GetValue を使用する為に { set; get; } でメソッド化しています
public string 社員コード { set; get; }
public string 氏名 { set; get; }
public string フリガナ { set; get; }
public string 所属 { set; get; }
public int 性別 { set; get; }
public DateTime 作成日 { set; get; }
public DateTime 更新日 { set; get; }
public int 給与 { set; get; }
public int 手当 { set; get; }
public string 管理者 { set; get; }
}
}
}
|
|
【C#の最新記事】
- C# : PHP と連携してバイナリデータを WebClient.UploadDataAsync でそのままアップロードする
- C# : Microsoft Access の接続で、他の RDBMS( ここでは MySQL ) にエクスポートを行う
- C# : TKMP.DLLを使った、Gmail 用メール送信テンプレート
- C# : DataGridView を使用したナチュラルな行データの更新
- C# の delegate : メソッドの引数にメソッドを渡して使用する方法と、JavaScript の function(){} と同じ使用方法( 匿名 )
- PowerShell 移行用 C# コンソールアプリのコードテスト( ZIP 圧縮 )
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (4)
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (3)
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (2)
- 解く事が目的では無い、身に付ける事が目的の C# 初心者用の問題を作ったので良かったらどうぞ (1)
- ComboBox : C# : Form アプリケーションで良く使うコントロール / VS2012 にて
- C# バッチビルドキットで、VB の My 名前空間を使ってクリップボードを使ったり、キーボードの SHIFT キーが押されているかを知る
- printui.dll を VB.net または C# から呼び出す/ DllImport で LoadLibraryA / VS2010
- LINQ で List
のソート - VS2010(C#)WPF : ListView 内に GridView を配置する
- Windows ストア用の System.Collections.Generic 名前空間には、SortedList はありません。
- 情報が全くみつからない Microsoft.Live
- VS2010(C#) バッチ(コンソールアプリ) Twitter 投稿
- Windows8(C#) の WebView の LoadComplete で取得した URL 内のアクセストークンを Split で取得
- Facebook C# SDK の 5.4.1.0 のダウンロード




























