質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

JSON

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

6662閲覧

C# JSON形式で取得した配列データをHTMLでテーブルに表示させたい。

MellMell

総合スコア14

C#

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

JSON

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/08/14 06:40

編集2019/08/14 08:06

JSON形式で取得した配列データをHTMLでテーブルに表示させたい。
こんにちは。
現在、C#を使用してPDFの画面作成を行っております。
PDFの画面にはHTMLを使用して画面のレイアウトを修正している状況です。

そこでJSON形式で取得した配列データをHTMLのテーブルに表示しようとしていますが、うまくいきません。
どこから手を付ければいいかもわからない状況です。
以下のことを要件を踏まえて作成のアドバイスをいただけないでしょうか。
・JSONで取得するpeoplelist以下のデータ数(配列数)は固定数ではない。

以下が今回HTMLで作成したい> 引用テキスト図です。

名前出身趣味
田中東京サッカー
佐藤名古屋野球
鈴木大阪バスケ
取得するJSON形式のデータ "pepolelist": [ { "name": "田中" "place": "東京" "taste":"サッカー"   }   { "name": "佐藤" "place": "名古屋" "taste":"野球"   }         { "name": "鈴木" "place": "大阪" "taste":"バスケ"  }
C#のコード var date; //上記のデータが格納されている string[]pepolelist = date.peopepolelist StringBuilder sbBuilder = new StringBuilder();
//ここHTMLのタグを入れていくことになります <html><body> </body></html>

環境
OS windows
visualstadio2017
使用ライブラリ PDF for .NET

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

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

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

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

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

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

gentaro

2019/08/14 06:44

どのプロジェクトテンプレートを使ってるのかぐらい書きましょう。 提示されているコードもほぼ何も書いてない状態です。 丸投げじゃなくて作れるところまで作りましょう。 https://teratail.com/help/question-tips
退会済みユーザー

退会済みユーザー

2019/08/14 07:29 編集

何を作っているのですか? C# が出てくるということは ASP.NET Web Forms アプリとか ASP.NET MVC アプリですか? であればどっちか書いてください。そして ASP.NET のタグを付けてください。また、開発環境(OS, .NET, Visual Studio のバージョン、CORE か .NET Framework のどちらかなど)を書くようにしてください。
退会済みユーザー

退会済みユーザー

2019/08/14 07:33

やりたいことの全体のシナリオ・ストーリーを書いてください。(例:ASP.NET MVC アプリで、ブラウザに表示された画像のボタンをクリックすると、Ajax を使ってサーバーから JSON 文字列を取得できる。その JSON 文字列を使ってブラウザに表を描画する・・・あくまで例です。質問者さんのやりたいことをこのような形で書いてください)
退会済みユーザー

退会済みユーザー

2019/08/14 09:32 編集

> 使用ライブラリ PDF for .NET グレープシティの製品ですよね? であれば、グレープシティのサポートに聞いてはいかがですか? ここ Teratail で、たまたまそれを使って質問者さんがやりたい HTML コードを作るということをした経験のある人が通りかかって、親切に答えてくれるのを待って、期待する回答が得られるかどうか・・・
退会済みユーザー

退会済みユーザー

2019/08/14 08:22

ただ、提示されている JSON 文字列から、table, th, tr, td タグを含めた html ソースの文字列を生成できれば後は質問者さんの方で処理できるということであれば、どのような table, th, tr, td タグ構造にすればいいかを詳しく書いてもらえば、答えられる人は多いと思いますが。
guest

回答1

0

ベストアンサー

アドバイスを、ということなので、JSON をクラスオブジェクトに変換するところまで説明します。
クラスオブジェクトに変換したらあとはなんとかなりますよね?

(1) JSON がおかしいのできれいなジャイアンJSONに整形しましょう。

「JSONきれい ~JSON整形ツール~」
https://tools.m-bsys.com/development_tooles/json-beautifier.php

(2) 整形した JSON 文字列をクリップボードにコピーしてクラスを作成します。

Visual Studio 2015 以上であれば、コードエディタを表示しておき
メニューから「編集」→「形式を選択して貼り付け」→「JSONをクラスとして貼り付ける」
で、こんなクラスができるはずです。

C#

1public class Rootobject 2{ 3 public Pepolelist[] pepolelist { get; set; } 4} 5 6public class Pepolelist 7{ 8 public string name { get; set; } 9 public string place { get; set; } 10 public string taste { get; set; } 11}

(3) System.Runtime.Serialization をプロジェクトの参照設定に追加します。

(4) JSON をクラスオブジェクトに変換(デシリアライズ)します。

「【C#】DataContractJsonSerializerでJSONを扱う」
https://husk.hatenablog.com/entry/2018/07/22/114301

の中の「2. デシリアライズ(JSON > Object)用メソッドを作成」から

C#

1public static T ToObject<T>(string json) 2{ 3 using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) 4 { 5 var serializer = new DataContractJsonSerializer(typeof(T)); 6 return (T)serializer.ReadObject(ms); 7 } 8}

をコピーしてください。

(5) ToObject メソッドを実行して Rootobject クラスオブジェクトを作成します。

C#

1 var rootObject = ToObject<Rootobject>(JSONのデータ);

あとは、rootObject.Pepolelist を列挙して HTML を作成してください。

投稿2019/08/14 08:25

編集2019/08/14 10:53
KOZ6.0

総合スコア2626

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問