java如何将JsonNode转换为映射
在服务器上使用play framework java我使用graphiql发出请求,
当我做final JsonNode variables = request().body().asJson().get("variables")
,
具有值的JsonNode
"{\"id\":\"bar\"}"
,现在我想把这个JsonNode转换成一个映射,
我试过了
Json.mapper().convertValue(variables, new TypeReference<HashMap<String, Object>>() {
});
但我一直有例外
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [map type; class java.util.HashMap, [simple type, class java.lang.String] -> [simple type, class java.lang.Object]] from String value ('{"id":"bar"}'); no single-String constructor/factory method at [Source: N/A; line: -1, column: -1]
我做错了什么?如何将JsonNode转换为映射
# 1 楼答案
更改类型引用以使用}
Map
接口而不是HashMap
类。所以{更新:
另外,您还说您的JSON节点具有值
"{\"id\":\"bar\"}"
。这不是JSON对象,而是JSON字符串。确保整个对象如下所示:不是这样的: