9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[C#] DataContractJsonSerializerで読み書きするjsonデータのためのクラスを簡単につくる

Last updated at Posted at 2020-01-06

もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

json関連記事
https://qiita.com/tera1707/items/4fda73d86eded283ec4f#json

やること

以前の記事で書いた、.NETのDataContractJsonSerializerクラスを使ったjsonデータの読み書きで、jsonデータを格納するためのクラスをVisualStudio2019で簡単に作れるということを知ったのでメモしておく。

やり方

VisualStudio2019のメニューの中にある「jsonをクラスとして貼り付ける」という機能を使う。

簡単にいうと、jsonのデータのテキストをコピーして下記の操作をすると、データ格納のためのclassを手で書かなくても簡単に書いてくれるというもの。

操作は下記の通り。

  • まず、読み込みしたいjsonのテキストをCtrl+Cでコピーする。(以前の記事のjsonはこちら)
  • その状態でjsonクラスを貼り付けたい場所にカーソルを当てた状態にし、VisualStudio2019のメニューの[編集] > [形式を選択して貼り付け] > [jsonをクラスとして貼り付ける] を選択する。

image.png

これで、カーソルの場所に、クラスが貼り付けられる。貼り付けたものは下記の通り。

image.png

※jsonデータの先頭の配列に名前がないので、Rootobjectの下のクラス名がClass1、そのクラスのプロパティ名がProperty1になっている。
jsonデータの方にちゃんと名前が書かれていれば、そこにも名前が付けられる。(下の備考を参照。)

備考

以前の記事のjson、本当は下記の形式が正しいらしい。
※jsonは正しくは{で始まり}で終わる。で、topの配列([と]でかこまれたところ)にも、その書き方だと名前を付けることができる。

これだと、今回の方法で作成したクラスにも、名前がつく。(ここではclass Abc)

これだと、

{
"abc": [
    {
        "small": [
            123.456,
            789.012
        ],
        "large": [
            987.654,
            654.321
        ]
    },
    {
        "small": [
            111.456,
            222.012
        ],
        "large": [
            333.654,
            444.321
        ]
    }
]
}

こうなる。

image.png

9
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?