-1

Javaに送信したい次のタイプのJSONがあります(Jerseyとそれに付属するデフォルトのJSONパーサーを使用しています)

{ "something" : "1", "someOtherThing" : "2" , ... }

しかし、Java でこれらすべてのプロパティを持つオブジェクトを作成する代わりに、キーと値に引き続きアクセスできるようにする単一の HashMap (または何でも) が必要です。

そのようなことは可能ですか?

変換を行うコードは実際にはありません。このようにJerseyを使用しています

    @POST
    @Path("/purchase")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public StatusResult purchase(UserPurchaseRequest upr) {     
    }

UserPurchaseRequest オブジェクトにプロパティ some と someOtherThing を文字列として配置すると、すべて問題なく動作しますが、すべてを 1 つの構造体に収めたいと考えています (取得する値の数がわからず、それらの名前も必要なため) )

4

2 に答える 2

0

はい、可能です。ただし、使用している JSON Java API によって異なります。たとえば、Jackson JSON を使用すると、次のような HashMap json 文字列を作成できます。

  ObjectMapper obj = new ObjectMapper();
  String json = pbj.writeValue(<HashMap object>);

またはその逆

  HashMap obj = obj.readValue(json, HashMap.class);

注 - org.codehaus.jackson.map.ObjectMapper

于 2013-04-08T20:18:57.563 に答える