繁体   English   中英

将任意JSON从POST主体转换为地图JAVA REST

[英]Converting arbitrary JSON from POST body to a map JAVA REST

我目前正在使用REST Web服务。 方法之一是POST请求,其中用户以JSON格式发送一些配置详细信息。 配置参数的数量和参数本身将有所不同。 基本上,它看起来像:

{

"configParam1" : "value1", 
"configParam2" : "value2",
"configParam3" : "value3"
}

或者看起来像这样:

{  
"configParam1 ": "value1",

"configParam2" : "value2"

}

意味着键的数量和实际键本身将有所不同。 我需要将此JSON转换为地图。

我知道您可以通过创建POJO来做到这一点,并且它将根据类进行转换,但是,鉴于参数有所不同,我无法将硬类定义转换为POJO

有什么办法可以解决这个问题?

通常,不要放置类似:

@POST
@Produces(MediaType.APPLICATIONJSON)
@Consumes(MediaType.APPLICATIONJSON)
methodName(MyClassObject postJSONresponse){ 
}

我可以这样做:

@POST  
@Produces(MediaType.APPLICATIONJSON) .  
@Consumes(MediaType.APPLICATIONJSON) .  
methodName(Map (string,string) postJSONrepsonse){

} ?

有一个更好的方法吗?

如果可以的话请帮忙。

更新:我用了GSON。

这是我找到答案的链接:

如何使用Gson将JSON转换为HashMap?

我的功能看起来像这样:

@POST
@Produces(MediaType.APPLICATIONJSON)
@Consumes(MediaType.APPLICATIONJSON)
methodName(String json){ 
// convert the string to a Map using GSON:

Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = 
gson.fromJson({'k1':'apple','k2':'orange'}", type);

//now myMap is a map (of type : linkedTreeMap, which implements map
}

您必须导入Gson类型令牌和我相信的类型。

希望这可以帮助任何需要它的人:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM