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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

17081閲覧

C#でdatatbleをjsonデータに変換したい

asr1919

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/06/21 07:23

0

0

前提

今までは、別のメソッドから取得した複数件のデータをDataTableに格納し、SelectListにしてreturnで返していました。

C#

1 // dtがDataTable 2 var dta = dt.AsEnumerable().Select(x => new 3 { _ID = x["_ID"], 4 _NAME = x["_NAME"] 5 }); 6 SelectList retList = new SelectList(dta, "_ID","_NAME"); 7 8 return retList;

実現したいこと

これに今度は項目の追加をし、さらに以下のようにJSONにしてreturnで返したいです。

json

1 2"_ID": 1,"_NAME": "太郎","_AGE": 30,"_GENDER": "男" 3"_ID": 2,"_NAME": "次郎","_AGE": 29,"_GENDER": "男" 4"_ID": 3,"_NAME": "三郎","_AGE": 28,"_GENDER": "男" 5

DataTableからJSONに変換することは可能でしょうか。
もしできるのであれば、ご教授お願い致します。

後、色々調べたんですが、
DataContractJsonSerializer
を使って、using・クラス追加してシリアライズをする感じになりますでしょうか。

よろしくお願いいたします。

補足情報

Microsoft Visual Studio 2019
Microsoft .NET Framework Version 4.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/06/21 07:48 編集

ASP.NET MVC の話ですか? であれば、局所的な部分の質問だけでなく、全体的にどういうことがしたいのかのシナリオ・ストーリーを書いてください。 あと、あなたの開発環境 (OS, MVC のバージョン、DB は何かとそのバージョン・エディションなど) を書いてください。
guest

回答2

0

ベストアンサー

DataContractJsonSerializer でもいいのですが、Newtonsoft の Json.NET を使うと簡単になるのでおすすめです。

C#

1 // いきなり渡せる 2 var result = Newtonsoft.Json.JsonConvert.SerializeObject(dt);

もちろん、dta 同様に LINQ で必要部分のみ渡しても大丈夫です。
https://qiita.com/ta-yamaoka/items/a7ff1d9651310ade4e76

投稿2019/06/21 08:12

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asr1919

2019/06/21 08:57 編集

素早い回答ありがとうございます。 無事解決しました。
guest

0

・質問の全体像について
修正依頼がありましたが、量が多くなるうえ「結局何が言いたいのか」みたいな文章になりそうだったので、部分的にしました。すいません。
質問内容は解決しましたのですが、来週にはもう少し細かい内容を追記致します。

投稿2019/06/21 08:58

asr1919

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/06/21 09:05

今となっては手遅れですが、質問者は回答欄に書かないというのがここのやり方のようです。質門者に回答欄に書かれると何が何だか分からなくなりますので。上のようなのは質問欄の下のコメント欄に書いてください。
退会済みユーザー

退会済みユーザー

2019/06/21 09:14

今回早くもベストアンサーを付けて終わりにしてしまっていますが、ASP.NET MVC であればもっとよく考えるべきです。 まず、DataTable を使っているところ。特にそうしなければならない理由がなければ、ADO.NET Entity Framework と Linq to Entities に変更することを考えるべきです。DataTable は ASP.NET MVC と親和性が高くない=開発時にウィザードが使えなくて茨の道を歩くことになります。 ASP.NET MVC の Controller クラスには Json メソッドというのがあって、それを使うべきです。(Json メソッドの内部では .NET Framework のオブジェクトを JSON 文字列にシリアライズするために JavaScriptSerializer クラスが用いられています) あと、JSON 文字列をどこでどのように使うかによって、どのような構文にシリアライズするかを考えないと意味がないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問