使用Java在JSON中正确编写URL
我需要在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字符
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很好(假设它是一个片段)。