如何在JSON对象中添加URL字符串

我需要通常以http:\ somewebsite.com \ somepage.asp格式添加URL。 当我使用上面的URL创建一个字符串并将其添加到JSON对象json时

运用

json.put("url",urlstring); 

它附加了一个额外的“\”,当我检查输出时,它就像http:\\\\somewebsite.com\\somepage.asp

当我将URL作为http://somewebsite.com/somepage.asp ,json输出为http:\/\/somewebsite.com\/somepage.asp

你能帮我检查一下这个URL吗?

谢谢

您的JSON库会自动转义斜杠等字符。 在接收端,您必须使用replace()类的函数删除这些反斜杠。

这是一个例子:

 string receivedUrlString = "http:\/\/somewebsite.com\/somepage.asp";
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 )

Tichodroma的答案已经确定了。 您可以通过存储有效的URL来解决“问题”。


此外,JSON格式要求字符串中的反斜杠使用第二个反斜杠进行转义。 如果省略第二个反斜杠,结果是无效的JSON。 请参阅http://www.json.org上的JSON语法图

双反斜杠给你带来问题的事实实际上意味着正在读取文件的软件被破坏了。 正确编写的JSON解析器将自动解除字符串的转义。 我上面链接的网站列出了许多用多种语言编写的JSON解析器库。 您应该使用其中之一而不是尝试自己编写JSON解析代码。