2013-04-25 101 views
3

我有一个很大的php字符串,包含json样式数据,需要以某种方式将其转换为json对象。我的字符串如下所示:(它是一个BIG字符串)。字符串的语法不完全是我在下面附加的,但它只是一个例子。我如何将字符串lik $ string转换为json对象?感谢名单。如何从PHP字符串创建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

'json_decode()'? – 2013-04-25 15:01:41

回答

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

There's no such thing as a JSON object

你有什么是一个JSON文本表示为PHP字符串文字。

如果要将其解析为PHP对象,请使用json_decode($string)

如果您想将它解析为JavaScript对象,那么您必须以某种方式将该字符串传递给JavaScript。这可能涉及将其打印到对HTTP请求的响应中,并将其传递给V8或其他某种技术,具体取决于您想要使用的方法。

+0

更清楚我正在尝试使用以下方法:d3.json(“page.php”)该方法可以采用.php文件。我尝试传入的php文件实际上在文件中创建了一个类似上面的字符串的方法,并返回字符串。我在正确的道路上吗? – user1899872 2013-04-25 15:17:57

+0

它不能带一个PHP文件。它可以采取一个URL。该服务器可能使用PHP来确定对该URL的请求做出什么响应。 (这将是前面提到的“将其打印到响应中”)。如果您想查看输出内容,请直接通过在浏览器的地址栏中输入网址来请求URL。 – Quentin 2013-04-25 15:22:32