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

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

新規登録して質問してみよう
ただいま回答率
85.50%
JSON

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

3回答

4997閲覧

[Java][struts]ajaxにおいてBeanをクライアントに送信したい

ryo_se

総合スコア68

JSON

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2016/11/09 08:36

Struts1にてajaxの機能を実装しようとしております。
普通の文字列を送る機能は実装できたのですが、アクションで生成したBeanをajaxで送るということができません。
下記のコードだと、ajax側でデータを取得できない状態です。
(obj3のaddをコメント化すればデータを取得できます。)

また、Bean内にもしリストがあった場合にそれもクライアント側で表示できるか知りたいです。

JSONObjectはjson-simple-1.1jarを使用しています。
方法をご教授していただければ幸いです。

・Javascript

$(function() { $("#search_button").click(function(){ $.getJSON( "/Server/Ajax.do", function(result){ alert(111); for(var i=0; i<result.length; i++){ if(i==2){ alert(result[i].formBean.ID); continue; } $("<OPTION></OPTION>").val(i).text(result[i].name + "(" + result[i].age + ")").appendTo("#users"); } result.length; } ); }); });

・アクション

HensyuForm hensyuForm = new HensyuForm(); hensyuForm.setID("IDTEST"); JSONObject obj1 = new JSONObject(); obj1.put("name", "太朗"); obj1.put("age", 27); JSONObject obj2 = new JSONObject(); obj2.put("name", "花子"); obj2.put("age", 25); JSONObject obj3 = new JSONObject(); obj3.put("formBean", hensyuForm); JSONArray json = new JSONArray(); json.add(obj1); json.add(obj2); json.add(obj3); PrintWriter writer; System.out.println(json.toString()); response.setCharacterEncoding("UTF-8"); writer = response.getWriter(); writer.print(json.toString()); writer.close(); return null;

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

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

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

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

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

guest

回答3

0

java

1response.setContentType("application/json;charset=utf-8");

でOKではないでしょうか?

投稿2017/06/27 07:14

sir_nake

総合スコア16

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

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

0

HensyuFormをJSON変換するライブラリ(例:jackson、jsonic)を使うことでJSON変換はできます。

※Struts1はJSON変換を標準では行いません。

投稿2016/11/09 09:53

A-pZ

総合スコア12011

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

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

0

JSONは文字列です。なのでオブジェクトを送信することはできません。
送信する為には連想配列等の文字列に変換できる状態でなければいけません。
HashMap等を使用して、HensyuFormオブジェクトをkey-valueの形式に変換する必要があります。

投稿2016/11/09 08:53

編集2016/11/09 08:53
himakuma

総合スコア952

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

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

himakuma

2016/11/09 08:57

もしかしたら、リフレクションして取得するメソッドがあるかも??
KSwordOfHaste

2016/11/09 09:52

BeanはJREやアパッチのライブラリーなど(BeanUtils?)で提供されているいくつかのユーティリティークラス・メソッド使うとプロパティーの一覧情報をリフレクションを使うよりは簡単に取れてそれを使うと簡単にJSONへ変換できる・・・みたいなことを期待されているのではないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問