如何从php字符串创建JSON对象?

3

我有一个很大的PHP字符串,由json风格的数据组成,需要将其转换为json对象。我的字符串看起来像下面这样:(它是一个巨大的字符串)。字符串的语法不完全是我下面附加的样子,但它只是一个示例。我该如何将类似于$string的字符串转换为json对象?谢谢。

$string = "
{
 \"name\": \"flare\",
 \"children\": [
  {
   \"name\": \"analytics\",
   \"children\": [
    {
     \"name\": \"cluster\",
     \"children\": [
      {\"name\": \"AgglomerativeCluster\", \"size\": 3938},
      {\"name\": \"CommunityStructure\", \"size\": 3812},
      {\"name\": \"HierarchicalCluster\", \"size\": 6714},
      {\"name\": \"MergeEdge\", \"size\": 743}
     ]
    }
    ]
  }
  ]
}
";
2个回答

3
使用json_decode()函数来实现此功能:
$obj = json_decode($string);
var_dump($obj);

输出:

class stdClass#1 (2) {
  public $name =>
  string(5) "flare"
  public $children =>
  array(1) {
    [0] =>
    class stdClass#2 (2) {
      public $name =>
      string(9) "analytics"
      public $children =>
      array(1) {
        ...
      }
    }
  }
}

2

没有 JSON 对象这样的东西

你所拥有的是一个以 PHP 字符串文字表示的 JSON 文本。

如果你想把它解析成 PHP 对象,那么使用 json_decode($string)

如果你想将其解析为 JavaScript 对象,则必须以某种方式将字符串传递给 JavaScript。这可能涉及将其打印到 HTTP 请求的响应中、传递给 V8 或其他技术,具体取决于你想要实现的目标。


我正在尝试使用以下方法:d3.json("page.php")。该方法可以接受一个 .php 文件。我要传递的 php 文件实际上在文件内部有一个方法,该方法创建一个类似上面的字符串并返回该字符串。我走对了吗? - user1899872
它不能接受PHP文件,但可以接受URL。该服务器可能使用PHP来确定对该URL请求给出何种响应(这将是前面提到的“将其打印到响应中”)。如果您想查看输出内容,则可以通过在浏览器地址栏中输入URL直接请求。 - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接