我从rest调用中得到了一个json,{"d1":1,"d2":1,"d3":0,"d4":1},它以- {d1=1,d2=1,d3=0,d4=1}的形式存储在数据库中。
当我从数据库中读取数据时,上面的字符串是- {d1=1,d2=1,d3=0,d4=1}。我想像上面提到的- {"d1":1,"d2":1,"d3":0,"d4":1}一样把它转换成原来的形式。
我如何在java中实现这一点。有没有可用的json库来做这件事?
到目前为止,我已经尝试过了,但没有成功-
新解析器= JSONParser JSONParser();JSONObject json = (JSONObject) parser.parse(jsonString);
我想把这个json放在ResponseEntity>中。
我也试过了-
jsonString = jsonString.replaceAll("=",":");JSONObject jsonObject =新JSONObject(jsonString);
String finalJsonString = jsonObject.toString();
这将返回响应为"{\"d1\":1,\"d2\":1,\"d3\":0,\"d4\":1}“,在键的双引号之前以双引号开头,以反斜杠结尾。
发布于 2019-04-20 02:19:24
DB返回的字符串不是JSON格式,解析失败。
您可以使用以下方法将返回的字符串格式化为JSON字符串,然后对其进行解析。我用过Guava的Splitter.MapSplitter
String in = "{d1=1,d2=1,d3=0,d4=1}";
in = in.replaceAll("[{}]", "");
Map<String, String> properties = Splitter.on(",").withKeyValueSeparator("=").split(in);
JSONObject obj = new JSONObject(properties);
String formattedString = obj.toString();
发布于 2019-05-01 13:09:39
您可以执行以下操作:
ObjectMapper mapper = new ObjectMapper();
try {
MyResponse result = mapper.readValue(e.getResponseBodyAsString(),MyResponse.class);
return result;
} catch (IOException e1) {
e1.printStackTrace();
}
https://stackoverflow.com/questions/55765586
复制相似问题