我目前正在使用 REST 网络服务。其中一种方法是POST请求,其中用户以 JSON 的格式发送一些配置详细信息。配置参数的数量和参数本身会有所不同。基本上,它看起来像:
{
"configParam1" : "value1",
"configParam2" : "value2",
"configParam3" : "value3"
}
或者看起来像这样:
{
"configParam1 ": "value1",
"configParam2" : "value2"
}
意味着键的数量和实际键本身会有所不同。 我需要将此 JSON 转换为地图。
我知道您可以通过创建 POJO 来实现,并且会根据类进行转换,但是,鉴于参数不同,我无法转换硬类定义至。
有什么方法可以解决这个问题吗?
一般而言,不要像以下那样:
@POST
@Produces(MediaType.APPLICATIONJSON)
@Consumes(MediaType.APPLICATIONJSON)
methodName(MyClassObject postJSONresponse){
}
我可以这么做:
@POST
@Produces(MediaType.APPLICATIONJSON) .
@Consumes(MediaType.APPLICATIONJSON) .
methodName(Map (string,string) postJSONrepsonse){
} ?
有更好的方法吗?
如果可以,请帮忙。
答案 0 :(得分:0)
更新: 我用了GSON。
以下是我找到答案的链接:
How can I convert JSON to a HashMap using Gson?
我的功能看起来像这样:
@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 Type Token和Type I相信。
希望这可以帮助任何需要它的人:)