-1

我有以下类型的 JSON 我想发送到 Java(我正在使用 Jersey 和它附带的默认 JSON Parser)

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

但是,我不想在 Java 中创建具有所有这些属性的对象,而是希望有一个 Single HashMap(或其他),它允许我仍然可以访问 Key 和 Value

这样的事情可能吗?

我真的没有任何代码可以进行转换,我像这样使用 Jersey

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

如果我将属性 something 和 someOtherThing 作为字符串放在我的 UserPurchaseRequest 对象中,一切都会好起来的,但我想把所有东西都放在一个结构中(因为我不知道我会得到多少值,我也需要它们的名字)

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 回答
0

你只需要像这样向你的对象添加一个属性

    private HashMap<String,String> purchaseValues;

Jersey 负责其余的工作,由于某种原因,在您调试时,大多数条目在 HashMap 中显示为 null

于 2013-04-08T20:52:08.100 回答