使用Java在JSON中正确编写URL

使用Java在JSON中正确编写URL,java,json,string,url,Java,Json,String,Url,我需要在JSON文档上写一个属性,这个属性是一个URL 这是我的代码: String url = "http://localhost:1028/accumulate"; JSONObject cabecera = new JSONObject(); cabecera.put("reference", url); 但是当我创建JSON时,这个attibute是这样写的: "reference":"http:\/\/localhost:1028\/accumulate", 因此,接收JSON字符

我需要在JSON文档上写一个属性,这个属性是一个URL

这是我的代码:

String url = "http://localhost:1028/accumulate";
JSONObject cabecera = new JSONObject();
cabecera.put("reference", url);
但是当我创建JSON时,这个attibute是这样写的:

"reference":"http:\/\/localhost:1028\/accumulate",
因此,接收JSON字符串的服务向我发送了一个错误:

<subscribeContextResponse>
  <subscribeError>
    <errorCode>
      <code>400</code>
      <reasonPhrase>Bad Request</reasonPhrase>
      <details>JSON Parse Error: <unspecified file>(1): invalid escape sequence</details>
    </errorCode>
  </subscribeError>
</subscribeContextResponse>
写URL的正确方法是什么

提前谢谢

但是当我创建JSON时,这个attibute是这样写的:

"reference":"http:\/\/localhost:1028\/accumulate",
“参考”:“http:\/\/localhost:1028\/accumulate”,

这很好,反斜杠是无害的,无论你用什么来序列化JSON,它的转义都有点夸张。上面表示的字符串根本不包含反斜杠,只包含斜杠\/与
/
完全相同,我们可以从以下突出显示的规则中看到:

(“索利多金币”是斜杠的一个花哨术语)

但是当我创建JSON时,这个attibute是这样写的:

"reference":"http:\/\/localhost:1028\/accumulate",
“参考”:“http:\/\/localhost:1028\/accumulate”,

这很好,反斜杠是无害的,无论你用什么来序列化JSON,它的转义都有点夸张。上面表示的字符串根本不包含反斜杠,只包含斜杠\/与
/
完全相同,我们可以从以下突出显示的规则中看到:


(“solidus”是斜杠的一个奇特术语)

如何创建JSON?如何创建JSON?那么,这个属性的问题在哪里?如果服务正在等待一个字符串,而我发送了一个格式良好的字符串,那么问题是否可能是我的JSON中的其他问题?@jjmartinez您的JSON没有问题,问题是另一端试图解析它的代码不符合JSON规范。@jjmartinez:可能是您用来接收/验证/解析JSON的任何东西都被破坏了,并且不理解转义序列
\/
。如果是这样的话,我会换成没有坏的东西。这个序列在JSON.org和JSON.org上都显示为有效。我认为服务器(Orion上下文代理服务)没有损坏。请看一下。请注意,它使用
\/
。如果运行此脚本,它会将请求发送到服务,并正确处理,如下所示:,对应于请求后数据库上的
db.csubs.find()
。注意DB处的参考字段,考虑到转义,该字段正确存储。因此,问题必须在其他地方(可能Java框架正在做一些与编码相关的丑陋工作?@fgalan:JSON的其他部分总是可能有问题,或者存在文本编码不匹配的问题。但是问题中的JSON很好(假设它是一个片段)?如果服务正在等待一个字符串,而我发送了一个格式良好的字符串,那么问题是否可能是我的JSON中的其他问题?@jjmartinez您的JSON没有问题,问题是另一端试图解析它的代码不符合JSON规范。@jjmartinez:可能是您用来接收/验证/解析JSON的任何东西都被破坏了,并且不理解转义序列
\/
。如果是这样的话,我会换成没有坏的东西。这个序列在JSON.org和JSON.org上都显示为有效。我认为服务器(Orion上下文代理服务)没有损坏。请看一下。请注意,它使用
\/
。如果运行此脚本,它会将请求发送到服务,并正确处理,如下所示:,对应于请求后数据库上的
db.csubs.find()
。注意DB处的参考字段,考虑到转义,该字段正确存储。因此,问题必须在其他地方(可能Java框架正在做一些与编码相关的丑陋工作?@fgalan:JSON的其他部分总是可能有问题,或者存在文本编码不匹配的问题。但问题中的JSON很好(假设它是一个片段)。