我需要通常以http:\ somewebsite.com \ somepage.asp格式添加网址。 当我使用上面的URL创建一个字符串并将其添加到JSON对象json
时使用
json.put("url",urlstring);
它附加了一个额外的“\”,当我检查输出时,它就像http:\\\\somewebsite.com\\somepage.asp
当我将网址设为http://somewebsite.com/somepage.asp
时
json输出为http:\/\/somewebsite.com\/somepage.asp
你能帮我检查一下这个URL吗?
由于
答案 0 :(得分:8)
您的JSON库会自动转义斜杠等字符。在接收端,您必须使用replace()
之类的函数删除这些反斜杠。
以下是一个例子:
string receivedUrlString = "http:\/\/somewebsite.com\/somepage.asp";<br />
string cleanedUrlString = receivedUrlString.replace('\', '');
cleanedUrlString
应为"http://somewebsite.com/somepage.asp"
。
希望这有帮助。
参考:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace(char,%20char)
答案 1 :(得分:3)
Tichodroma的答案已经确定了。您可以通过存储有效的URL来解决“问题”。
此外,JSON格式要求字符串中的反斜杠使用第二个反斜杠进行转义。如果省略第二个反斜杠,结果是无效的JSON。请参阅http://www.json.org
上的JSON语法图双反斜杠给你带来问题的事实实际上意味着正在读取文件的软件被破坏了。正确编写的JSON解析器将自动解除字符串的转义。我上面链接的网站列出了许多用多种语言编写的JSON解析器库。您应该使用其中一个而不是尝试自己编写JSON解析代码。