我创建JsonObject
和JsonArray
如下:
JSONObject jObj = new JSONObject();
jObj.put("path", "dfds/g");
jObj.put("etag", "dfdsfsd");
jObj.put("size_bytes", 123);
JSONArray list = new JSONArray();
list.add(jObj);
String s = list.toJSONString();
我得到的结果:
[{"size_bytes":123,"etag":"dfdsfsd","path":"dfds\/g"}]
"path":"dfds\g"
,而不是dfds\/g
path, etag, size_bytes
我很乐意获得如何解决上述问题的建议答案 0 :(得分:4)
Json编码器正在逃避正斜杠,这就是你获得\/
的原因。这是完全合法的语法,不用担心。
您不必担心在Json字符串中进行排序,字段本身没有排序,依赖于此可能会在将来导致问题。
答案 1 :(得分:0)
如果您绝对必须从字符串中删除正斜杠,那么您可以这样做:
s = s.replace("\\/", "/");
有关详细信息,请参阅String replace a Backslash。
我建议不要在这种情况下这样做。相反,您应该使用众多String
解析库中的一个解析JSON
。
以下是您的示例String
:
public static void main(String[] args){
String s = "[{\"size_bytes\":123,\"etag\":\"dfdsfsd\",\"path\":\"dfds\\/g\"}]";
System.out.println(s);
s = s.replace("\\/", "/");
System.out.println(s);
}
<强>输出:强>
[{"size_bytes":123,"etag":"dfdsfsd","path":"dfds\/g"}]
[{"size_bytes":123,"etag":"dfdsfsd","path":"dfds/g"}]