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

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

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

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

Java

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1775閲覧

Jqueryで使用する、非同期通信Jsonについてご教授願います。

looow

総合スコア6

JSON

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

Java

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/07/03 08:43

編集2018/07/04 04:40

前提・実現したいこと

DBに会社情報が登録されており、
コードを入力し、フォーカスアウトすると
郵便番号、住所、社名が反映される仕組みを作っています。
Jsonで'POST'に
画面からのコード情報を送りました。

その後、コードを元に検索処理をし、
JSで反映すべき情報をサーブレットから受け取りたいのですが、
上手くいきません。
アドバイス願います。

該当のソースコード

$('#customersCd').blur(function() { if ($("#customersCd").val() != ""){ $.ajax({ type : "POST", url : "APS250Servlet", data : { action : 'custCd', customersCd : $('#customersCd').val() }, dataType : 'json' }) .then ( function(jsonResult) { $('#yCode').val(jsonResult.yCode); $('#address1').val(jsonResult.address1); $('#address2').val(jsonResult.address2); $('#customersName').val(jsonResult.customersName); }, function(){ alert("反映失敗"); }); } else { alert("エラー"); } }); ### 試したこと thenのほかに、success/errorもやったのですが、 success処理が実行できません。 ### サーブレットでのコード //郵便番号、住所、社名情報を代入 APS250CustCd aps250CustCd = model.custCd(con,customersCd); resp.setContentType(APS250Const.DISP_INFO_APS250_HEAD_TYPE); try { // JSONデータの作成 JSONObject jsonObject = JSONObject.fromObject(aps250CustCd); PrintWriter out = resp.getWriter(); out.print(jsonObject); System.out.println("b"); } catch (IOException e) { throw new CommonException(MessageConst.MSGID_E00001, MessageConst.MSG_TYPE_SYSTEM_ERROR, e); } String fowordid = APS250Const.DISP_INFO_APS250_INPUT_JSP_PATH; return fowordid; ### 補足情報(FW/ツールのバージョンなど) ”resp.setContentType(APS250Const.DISP_INFO_APS250_HEAD_TYPE);”では、 "application/json; charset=utf-8";を指定しいます。

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

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

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

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

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

m.ts10806

2018/07/03 08:50

プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
m.ts10806

2018/07/03 08:53

サーブレットコードもできれば全体が分かるような状態で提示していただけると的確な回答がつきやすくなります。あとAjaxでjQuery記述されるのでしたら記法はjQuery記法に統一されたほうが読みやすくなります。( document.getElementById("customersCd").value → $("#customersCd").val() など )
looow

2018/07/03 10:22

見づらいかったですね。 ご指摘ありがとうございます。 次回の質問時にそのような形で、ソースを乗せるようにします!
m.ts10806

2018/07/03 10:32

質問は編集できるので…
m.ts10806

2018/07/04 04:42

コードはごちゃ混ぜにすると再現確認がとりづらいですし分かりにくくなりますのでブロックを分けて、冒頭の```を```js ```java のようにそれぞれの言語名を記載してください。
guest

回答1

0

ベストアンサー

まずはjavaへ渡すのではなくスタティックなjsonファイルにpostするところから

javascript

1$(function(){ 2 $('#customersCd').blur(function() { 3 if ($(this).val() != ""){ 4 $.ajax({ 5 type : "POST", 6 url : "test.json", 7 data : { 8 action : 'custCd', 9 customersCd : $('#customersCd').val() 10 }, 11 dataType : 'json' 12 }).done(function(data) { 13 $('#yCode').val(data.yCode); 14 $('#address1').val(data.address1); 15 $('#address2').val(data.address2); 16 $('#customersName').val(data.customersName); 17 }).fail(function(xhr,err){ 18 alert(err); 19 }); 20 } else { 21 alert("エラー"); 22 } 23 }); 24}); 25
  • test.json

json

1{"yCode":123456,"address1":"hogehoge","address2":"fugafuga","customersName":"piyopiyo"}

で、ここまで動作確認がとれたらjavaに実際データを渡してみてfailで
errが返ってきているなら内容を確認みてください

投稿2018/07/03 09:52

yambejp

総合スコア114581

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

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

looow

2018/07/03 10:23

ありがとうございます。 うまく実行できました! 本当に助かりました、
looow

2018/07/04 04:44

昨夜は実行できたのですが、 'parsererror'が起きてしまします。 解決策をアドバイス願います。
yambejp

2018/07/04 07:05

parsererrorは期待した型でデータが戻ってきていないというものです dataType : 'json'で指定しているので サーバー側がjsonのルールを逸脱した形でデータを返していると思います とりあえずはdataTypeを'text'にするとparsererrorではなくなりますので doneのfunction(data)で戻り値を確認し、サーバー側のフォーマットを 調整するようにしてください
looow

2018/07/04 08:28

ありがとうございます。 今度こそ出来ました、jsonデータをjspにフォワードをしてしまっていたことが原因でした。 丁寧に解説頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問