2012-03-24 19 views
3

JAX-RSでREST APIを構築しています。JSONのJAX-RSでの構文解析

​​

私はこのような方法があります:

要素がクラスである:私は、JSON要素を消費POSTを持って、私はEventDataのJSON文字列を投稿する場合

@POST 
@Consumes({MediaType.APPLICATION_JSON}) 
public Response transactionRequest(EventData insert){ 
....} 

をそれ正常に動作しますが、次のように切り替えた場合:

@POST 
@Consumes({MediaType.APPLICATION_JSON}) 
public Response transactionRequest(ArrayList<EventData> insert){ 
....} 

このようなJSON文字列を送信します。"{eventData:[{start:x,end:y,persons:[....]}]"ArrayListオブジェクトとそのEventDataオブジェクトを作成しますが、EventDataオブジェクト変数はnullです。

誰でも手伝いできますか?

答えて

1

EventDataクラスを表すJSONオブジェクトで構成されるJSON配列を送信する必要があります。

あなたが与えたサンプルはそのようなJSON配列ではなく、JSON配列を含む 'eventData'という名前の単一のプロパティを持つJSONオブジェクトです。

は(あなたのEventDataクラスに基づいて)このような何かを試してみてください:

JSONは、名前付きの型の概念がないので、あなたの EventDataクラスの言及は、存在しないこと
[ 
    { "start":1, "end":2, "persons":[] }, 
    { "start":3, "end":4, "persons":[] } 
] 

お知らせ - それはちょうどオブジェクトとの配列ですオブジェクト;オブジェクトのプロパティのみが名前を持ちます。

+0

com.sun.jersey.json.impl.reader.JsonFormatException: "]"の代わりにコロンが使用される –

+0

私の答えのJSONは非常に粗いサンプルです。リストを返すJAX-RSメソッドの出力を使用することをお勧めしますにダミーアイテムが含まれています。あなたの 'EventData'クラスを指定して有効なJSONを書きます:) –

+0

私は有効なJSONサンプルで自分の答えを更新しました。 –