如何将jsonnode从unirest转换为Map< string,boolean>?

cu6pst1q  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(333)

我发出了一个unirest请求,并以jsonnode的形式得到了响应,我正试图将其转换为map<string,boolean>,但是到目前为止还没有任何效果。以下是我迄今为止尝试过的几件事:
使用objectmapper

ObjectMapper mapper = new ObjectMapper();
Map<String, Boolean> responseMap = mapper.convertValue(myJsonNode, new TypeReference<Map<String, Boolean>>(){});

但是,当我稍后迭代时,会出现以下错误: java.lang.IllegalArgumentException: No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.mashape.unirest.http.JsonNode["array"]) 使用gson

JSONObject jsonObject = myJsonNode.getObject(); 
HashMap<String,Boolean> responseMap = new Gson().fromJson(jsonObject.toString(),HashMap.class);

但是,这给了我解析错误: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean 然而,即使我将它改为字符串而不是布尔值,它也告诉我不能将布尔值转换为字符串????奇怪的
将jsonnode转换为字符串,然后转换为Map:
字符串myjson=pocoresponsejson.tostring();objectmapper mapper=新的objectmapper();map<string,string>responsemap=null;responsemap=mapper.readvalue(myjson,map.class);
然而,这仍然给了我这个错误 java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String 因为http响应的Map值是布尔值。
无论哪种方法我都可以,我会做任何有效的事情。提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题