首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java GET HTTP openConnection()没有正确编码JSON输出字符串

Java GET HTTP openConnection()没有正确编码JSON输出字符串
EN

Stack Overflow用户
提问于 2021-02-18 04:54:53
回答 1查看 33关注 0票数 1

当我从url.openConnection()的输出流生成字符串时,我的JSON编码不正确。例如,字符串中的引号应该有\“而不是”。

期望值:

代码语言:javascript
运行
复制
recvbuff == {"question": "What is your favorite \"color\""}

实际:

代码语言:javascript
运行
复制
recvbuff == {"question": "What is your favorite "color""}

代码:

代码语言:javascript
运行
复制
String recvbuff = "";
String recv = "";

URL url = new URL("http://test.com/questions");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestProperty("Content-Type", "application/json; utf-8");
con.setRequestProperty("Accept", "application/json");

BufferedReader buffread = new BufferedReader(new InputStreamReader(con.getInputStream()));

while ((recv = buffread.readLine()) != null) {
   recvbuff += recv;
}

buffread.close();
EN

回答 1

Stack Overflow用户

发布于 2021-02-18 05:03:06

尝试将双引号替换为“

代码语言:javascript
运行
复制
String result =  recvbuff .replace("\"", "\\\"");

或者使用json对象api:

代码语言:javascript
运行
复制
JSONObject jsonObject = new JSONObject();
jsonObject.put("message", "Hello \"World\"");
String payload = jsonObject.toString();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66249810

复制
相关文章

相似问题

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