重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

すみません。C#アマチュアレベル(10年ぶり。言語はvbaならなんとか)、json3日目レベルのほぼ初心者です。どうしてもC#で始めなければならないため、10年ぶりのC#に悪戦苦闘しておりましたが、jsonの扱い方でほぼギブアップ状態です。どなたか、詳しいC#でjsonの扱い方を教えていただけると助かります。自身で調べるほが本来ですが、私自身、本職がプログラマではない為、色々とネットを使いましたが、なかなか答えにたどり着かない次第です。
やりたいことは、金融庁WebサイトからのEDINETデータをJSONで取得、そのアイテムの中のdocIDをwritelineで表示させたいというものです。ここさえできれば、残りはデータベースの接続、その後の処理はおおよそ自身でできると思いますので、


class Program
{
//ここの書き方は正しい?resultsの中の定義をすればそれでOKですか?
public class EdinetXbrl
{
public int seqNumber { get; set; }
public string docID { get; set; }

    …
public int englishDocFlag { get; set; }
}
static void Main(string[] args)
{
WebClient myWebClient = new WebClient();
myWebClient.Encoding = System.Text.Encoding.UTF8;
string jsonstring = myWebClient.DownloadString("https://disclosure.edinet-fsa.go.jp/api/v1/docum …
EdinetXbrl edinetxbrl = JsonConvert.DeserializeObject<EdinetXbrl>(jsonstring);
//↑でedinetxbrlを作りましたが、何も入っていないような。処理が失敗していると思います。
foreach(var f in in results){

Console.WriteLine("docIDの中身”);
}

}
}

A 回答 (2件)

EdinetXbrlクラスはmetadataプロパティ、resultsプロパティですね。



metadataプロパティの型はMetaDataになります。
resultプロパティの型はList<Results>になります。

MetaDataクラスでtitle, parameter, resultset, processDateTime, status, messageプロパティを持つでしょう。
resultsクラスでseqNumber, docID, edinetCode・・・プロパティを持つでしょう。

同様に、parameter、resultsetプロパティの型は、Parameter、ResultSetなどとなり、
Parameterクラスはdate, typeプロパティを持つし、ResultSetクラスはcountプロパティを持ちますね。

基本的な考えは、階層的にクラスとそのプロパティが定義されていけばいいだけです。


なお、ANo.1にある機能は、Visual Studio のインストールにて、「ASP.NETとWeb開発」をインストールしていないと表示されてきません。
メニューがあるなら、それを利用すると便利ですね。
    • good
    • 0

対象のURLにアクセスしたときに帰ってくるJSONをクリップボードにコピーして、


Visual Studioのメニューから[編集]->[形式を選択して貼り付け]->[JSONをクラスとして貼り付ける]で
エディタに貼り付ければクラスが自動で作成されます。
生成されたクラスでEdinetXbrl を置き換えたら動作しました。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!