繁体   English   中英

Perl JSON磅符号逃脱

[英]Perl JSON pound sign escaping

我正在尝试使用Perl(OTRS)编写的服务的Web API。 数据以JSON格式发送。

JSON结构中的一个字符串值包含一个井号,显然在JSON中用作注释字符。 这会导致解析错误:

解析JSON字符串时意外结束字符串

我找不到如何转义字符以便成功解析字符串。 明显的斜线逃逸导致:

字符串中的非法反斜杠转义序列

任何想法如何逃脱它?

更新:我尝试使用的URL看起来像这样(简化但仍导致错误):

http://otrs.server.url/otrs/json.pl?User=username&Password=password&Object=TicketObject&Method=ArticleSend&Data={"Subject":"[Ticket#100000] Test Ticket from OTRS"}

使用Uri::escape

use URI::Escape;
my $safe = uri_escape($url);

有关可能不安全的字符列表,请参阅rfc1738

哈希符号# 在URL中具有特殊含义 ,而不是JSON。 在删除服务器甚至看到它之前,您的URL可能在哈希处被截断:

http://otrs.server.url/otrs/json.pl?User=username&Password=password&Object=TicketObject&Method=ArticleSend&Data={"Subject":"[Ticket

这意味着远程服务器在Data受到损坏的JSON。 解决方案是对参数进行URL编码,然后将它们粘贴在一起形成您的URL; eugene y告诉你如何做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM