2013-04-08 71 views
-1

我有以下类型的JSON我要发送到Java(我使用的是新泽西州和默认的JSON解析器它自带)JavaScript对象到Java列表

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

但是,相反的创建与对象所有这些属性在Java中,我想有一个单一的HashMap(或其他),这将允许我仍然可以访问密钥和值

这样的事情可能吗?

我真的没有,做的变换中的任何代码,我用的泽西这样

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

如果我把东西的属性和someOtherThing作为字符串在我UserPurchaseRequest对象,一切都会在罚款,但我想在一个结构中拥有所有东西(因为我不知道我会得到多少值,而且我也需要他们的名字)

+0

向我们展示您正在使用的将JSON文本转换为Java对象的代码。 – 2013-04-08 20:12:38

+1

你需要JSON到MAP。它已经在SO 回答http://stackoverflow.com/questions/443499/json-to-map – hop 2013-04-08 20:16:18

回答

0

是的,这是可能的。但是,它依赖于您使用的JSON Java API。例如使用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

0

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

private HashMap<String,String> purchaseValues; 

泽西照顾其余的一些r eason在调试时,大部分条目在HashMap中显示为空