【问题标题】:JSON code to Array - quotes and double quotesJSON 代码到数组 - 引号和双引号
【发布时间】:2019-06-29 15:11:50
【问题描述】:

我有一个很大的 JSON 代码 - 2 801 278 个字符。现在我想在我的 PHP 脚本中从这个 JSON 代码创建一个数组,但我不能,因为我的脚本有引号和双引号,并且 PHP 返回一个错误。这是一个执行相同问题的简单代码:

{"title":"Example string's with \"special\" characters"}

如您所见,当我以这种方式粘贴此代码时:

var_dump(json_decode('{"title":"Example string's with \"special\" characters"}', true));

我收到一个错误,因为 ' 没有转义。当我尝试将 string's 更改为 string\'s 时,我得到了:

可恢复的致命错误:stdClass 类的对象不能 在...中转换为字符串

我应该如何更改此 JSON 代码以正确创建数组?

【问题讨论】:

  • 您是将 JSON 粘贴到脚本中还是从文件中读取?
  • 我将代码粘贴到 PHP 脚本中。

标签: php json


【解决方案1】:

你可以做两件事之一。

  1. 从文件中读取 JSON。 (推荐)
  2. 使用Heredoc

从文件中读取 JSON

在您的 PHP 文件旁边放置一个包含 JSON 的文件并使用 file_get_contents() 读取它。

<?php
  $json = file_get_contents("file.json");
  $array = json_decode($json, true);
?>

使用 Heredoc

<?php
  $json = <<<EOD
{"title":"Example string's with \"special\" characters"}
EOD;
  $array = json_decode($json, true);
?>

演示:https://eval.in/1119967

上述两种方法产生相同的输出。

【讨论】:

  • 工作正常!谢谢!
猜你喜欢
  • 2012-04-24
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
  • 1970-01-01
相关资源
最近更新 更多