首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用Java将字符串转换为JSON

无法使用Java将字符串转换为JSON
EN

Stack Overflow用户
提问于 2019-04-20 01:31:24
回答 2查看 121关注 0票数 0

我从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}“,在键的双引号之前以双引号开头,以反斜杠结尾。

EN

回答 2

Stack Overflow用户

发布于 2019-04-20 02:19:24

DB返回的字符串不是JSON格式,解析失败。

您可以使用以下方法将返回的字符串格式化为JSON字符串,然后对其进行解析。我用过GuavaSplitter.MapSplitter

代码语言:javascript
复制
        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();
票数 0
EN

Stack Overflow用户

发布于 2019-05-01 13:09:39

您可以执行以下操作:

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();
            try {
                MyResponse result = mapper.readValue(e.getResponseBodyAsString(),MyResponse.class);
                return result;
            } catch (IOException e1) {
                e1.printStackTrace();
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55765586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档