我从这样的SQL查询创建一个Json:
while(result.next())
items.add("sourcename"+"\""+":"+"\""+result.getString("name"));
我以这种方式检索它,并将其更改为JSONObject:
SqlConnector sqlConnector = new SqlConnector();
ArrayList<String> items = sqlConnector.getSourceType(sqlConnector.getId("users", "username", username));
JSONObject toSendBack = new JSONObject();
JSONArray dataArray = new JSONArray(items);
toSendBack.put("data", dataArray);
toSendBack.put("success", true);
response.getWriter().print(toSendBack.toString());
response.setStatus(HttpServletResponse.SC_OK);
我在以下问题上遇到了一些问题:
toSendBack.put("data", dataArray);
我收到的JSON就是这样:
{"data":["sourcename\":\"Polo","sourcename\":\"BMW"],"success":true}
为什么? 我怎样才能删除这些斜杠?
答案 0 :(得分:2)
看起来您手动创建JSON行不正确。我怀疑它应该是:
items.add("\"sourcename\":\""+result.getString("name")+"\"");
虽然“name”中有双引号,但事情会出错。最好的办法是使用合适的JSON库来自己处理所有这些。
答案 1 :(得分:0)
不要删除斜杠,因为当您将整个对象显示为字符串时,这就是JSON标准的定义方式。如果从JSONObject中提取字符串,则删除斜杠。
编辑:要找出JSON如何将字符串更改为自己的“内部”用法表示法的规则,请参阅http://json.org/了解字符串类型。
答案 2 :(得分:0)
如果你想要实现的目标是这样的:sourcename:"Polo"
,slash
用于将""
添加到字符串中,请尝试:
while(result.next())
items.add("sourcename"+"\""+result.getString("name")+"\"");