2012-05-08 10 views
3

私は単純なオブジェクトのリストからJSONを生成しようとしています。それは動作しますが、私の出力はクラス名でラップされています。私が持っているしたいと思い何JerseyでJSON出力から@XmlRootElementを省略する方法は?

{"classname":[{"name":"John Doe","title":"manager"} .....]} 

は私が私のクラスに@XmlRootElementしているので、これは理解

[{"name":"John Doe","title":"manager"} .....] 

ですが、私は省略した場合それは、その後、私はエラーを取得する:

A message body writer for Java class java.util.ArrayList, and Java type 
java.util.List<MyClass>, and MIME media type application/json was not found 

私はそれが正しい場所にある場合は100%わからないが、私は、真com.sun.jersey.api.json.POJOMappingFeatureを設定しています。私はEmbedded Jettyを使用しており、ServletHolderのパラメータを設定します。

+0

はあなたのクラスのインスタンスの名前を持っていないのですか?それは 'classname'の代わりに存在するでしょう –

+0

MyClass?それはリストのタイプです。 – wannabeartist

+0

私は埋め込まれたJettyをあきらめて、代わりにweb.xmlで "通常の" Jettyを試しました。それでも、誰かがweb.xmlなしで埋め込みJettyでこれを設定する方法を知っているなら、あなたの答えを投稿してください。 – wannabeartist

答えて

0

gsonを使用して配列の文字列を作成できます。それはあなたに望ましい答えを与えるはずです。詳細は

Gson gson = new Gson(); 
gson.toJson([{"name":"John Doe","title":"manager"} .....]); 

http://www.studytrails.com/java/json/java-google-json-java-to-json.jsp

のjavadoc:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html

+0

これは、javaリストをMimeメディアが解析できる文字列に変換するのに役立ちます:application/json – meenal

+1

あなたのプロジェクトに依存関係を追加したくない場合。配列の後にtoString()を追加してみてください。私はそれも動作すると思います – meenal