簡體   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