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

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

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

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

Knockout.js

KnockoutJSは、Model-ViewView-Model(MVVM)を用いたダイナミックなHTML ULのためのオープンソースのJavaScriptライブラリです。

Java

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

JavaScript

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

Q&A

解決済

2回答

23585閲覧

ajaxでjsonデータ送信エラー

totomore

総合スコア47

JSON

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

Knockout.js

KnockoutJSは、Model-ViewView-Model(MVVM)を用いたダイナミックなHTML ULのためのオープンソースのJavaScriptライブラリです。

Java

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

JavaScript

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

0グッド

1クリップ

投稿2015/07/08 02:43

ajaxでjsonデータを送信したとき
サーバ側で以下のエラーが発生してしまいます。

原因は何が考えられますでしょうか?

やりたいことは、javaでbeanクラスを定義していますので
そのbeanクラスにjsonデータをマッピングして受取りたいと思っています。

送信データがjsonであることは確認しております。

開発環境:
Win7
Oracle12c
Java1.7
javaフレームワーク spring 4 mvc
jsフレームワーク knockout 3

※サーバからはjson形式でデータを返却

lang

1org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unrecognized token 'testList': was expecting ('true', 'false' or 'null') 2 at [Source: java.io.PushbackInputStream@17f7271; line: 1, column: 19]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'testList': was expecting ('true', 'false' or 'null') 3 at [Source: java.io.PushbackInputStream@17f7271; line: 1, column: 19] 4at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:208) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE] 5at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:200) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE] 6 7

lang

1 2 // JSON に変換 3 var testList = ko.mapping.toJSON(self.mvtestList); 4 5 $.ajax({ 6 type : 'POST', 7 url : contextPath + '/test/upd', 8 contentType: "application/json; charset=utf-8", 9 cache : false, 10 data : { 11 'testList' : testList 12 }, 13 success : function(data, dataType) { 14 this; 15 self.testList(data); 16 }, 17 error : function(XMLHttpRequest, textStatus, errorThrown) { 18

lang

1 @RequestMapping(value="/rest/test/upd", 2 method = RequestMethod.POST, 3 consumes = MediaType.APPLICATION_JSON_VALUE, 4 produces = MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8" 5 ) 6 @ResponseBody 7 public void updTestRest( 8 @RequestBody Vtest[] testList 9 ) throws Exception 10 { 11 Vtest[] entity = testList; 12 } 13

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

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

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

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

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

guest

回答2

0

ベストアンサー

パースエラーみたいなので、下記でどうでしょうか?

lang

1// JSON に変換 2 var testList = ko.mapping.toJSON(self.mvtestList); 3 var data = { 4 'testList' : testList 5 }; 6 7 $.ajax({ 8 type : 'POST', 9 url : contextPath + '/test/upd', 10 contentType: "application/json; charset=utf-8", 11 cache : false, 12 data : JSON.stringify(data), 13 success : function(data, dataType) { 14 this; 15 self.testList(data); 16 }, 17 error : function(XMLHttpRequest, textStatus, errorThrown) {

投稿2015/07/08 06:54

just

総合スコア90

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

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

totomore

2015/07/08 08:33 編集

回答ありがとうございます。 エラーメッセージが変わりました。 org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instanceXXXXXX out of START_OBJECT token at [Source: java.io.PushbackInputStream@eb4a7a; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of jp.co.XXXXXX.Test[] out of START_OBJECT token at [Source: java.io.PushbackInputStream@eb4a7a; line: 1, column: 1] at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:208) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE] ~省略~ Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of jp.co.XXXXX.Test[] out of START_OBJECT token at [Source: java.io.PushbackInputStream@eb4a7a; line: 1, column: 1] なお、jsonデータは\マークで挟まっていました(エスケープ)。 まだまだ難しそうなら文字列で受取りjavaで加工しようと思います。
guest

0

jsonにするデータに名前を付けたのが原因でした。そのため名前が余分となり、jsonとbeanの型が合ってませんでした。

投稿2015/07/08 09:40

totomore

総合スコア47

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問