如何在包含URL的有效json中包含字符串?

时间:2016-11-24 13:30:30

标签: json string

我想创建一个包含URL的有效json对象,例如

{"a": "b http:\/\/stackoverflow.com\/questions\/ask c"}

我可以:

  • (A)使用反斜杠转义URL文本中的所有正斜杠
  • (B)将网址放入\\url{}

我的问题是:

  1. 还有其他方法吗? (注意:我不是指自动化它的库或工具,而是在json中编码或转义URL的有效方法。)

  2. 哪种可能性被认为是最佳做法?

  3. 在使用json对象(如Java,Python等)的主要编程语言中解析像(B)中的URL编码时,是否存在已知问题?

2 个答案:

答案 0 :(得分:0)

如果您这样做是有效的,但大多数语言都允许使这种方式更好的功能。 (例如,在C#中使用replace(),以及使用newtonsoft json序列化器和解析器。)

查看使用JSON所需的语言,并确保它可以通过给定的函数进行解析,或者查找外部库。

答案 1 :(得分:0)

快速说明您不必在the official JSON spec中转义正斜杠。但是,正斜杠是allowed to be escaped唯一的非特殊JSON字符。

另请注意,没有有效的(网络)网址应包含需要转义的字符。

在稍微宽泛的编码包含carraige返回,制表符等的JSON字符串的情况下(例如反斜杠必须通过\\进行转义),最佳做法是遵循规范并使用反斜杠转义字符。您提到的编程语言对反斜杠转义字符没有任何问题。