【问题标题】:Server could not parse JSON when exclamation mark is present存在感叹号时服务器无法解析 JSON
【发布时间】:2015-08-10 14:02:00
【问题描述】:

我正在尝试向 ZenDesk api 提交少量数据。这在 99% 的情况下都可以正常工作,唯一的问题是在文本中出现感叹号时出现。

我正在使用以下添加记录:

$company_name = "Company Name!";
curl_setopt($ch, CURLOPT_URL,"https://company.zendesk.com/api/v2/organizations.json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$body = '{"organization": {"name": "'.$company_name.'","domain_names": ["'.$company_url.'"]}}';
curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Connection: Keep-Alive'
));

【问题讨论】:

  • 将json_encode与数组一起使用时会不会出现同样的问题?
  • 这不是 JSON 问题,这是一个验证问题,可能在您使用的服务的后端
  • 如果将感叹号替换为 HTML 实体 ! ...?
  • 您得到的确切错误信息是什么?

标签: php json api curl zendesk


【解决方案1】:

我测试过的一些用于读写 JSON 的库在写入 JSON 文件时似乎会自动转义任何感叹号(“!”)。 即使没有转义,图书馆仍然可以读取感叹号,但他们似乎更愿意将其转义以作为预防措施。

在网上搜索时,我看到了关于 JSON 中感叹号问题的轶事证据,这些问题没有被转义。但没有确凿证据证明存在已知问题。

如有疑问,我建议始终在 JSON 中转义感叹号以作为预防措施。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多