2014-10-01 79 views
2

我希望我的json_encode拥有的序列化字符串:PHP json_encode {}字符

['Element', 'Density', { role: 'style' }] 

我该怎么办呢?

我试图

$data = array('Element', 'Density', "{ role: 'style' }"); 
    echo json_encode($data); 

生产:

["Element","Density","{ role: 'style' }"] 

注意额外报价

+0

您需要使用数组键的常规语法。 – 2014-10-01 01:45:24

+1

'array('Element','Density',array('role'=>'style'));'。看看例子有时会有所帮助:http://php.net/manual/en/function.json-encode.php – 2014-10-01 01:46:05

+0

您试图获取包含字典的数组,但您要插入一个字符串。 – 2014-10-01 01:46:25

回答

3

你窝它在另一个数组:

$data = array('Element', 'Density', array('role' => 'style')); 
            //^another nesting here 
echo json_encode($data); 
+0

谢谢。它炒锅。我被抛出,因为嵌套数组使用{}而不是[]。 – Yada 2014-10-01 01:53:00

+0

@Yada是啊,你真的不需要手工编写它,只是建立一个正常的阵列结构,即'json_encode()'将处理自动 – Ghost 2014-10-01 01:58:24

+0

'json_encode'默认将治疗PHP关联数组作为JSON对象,翻译数组键入属性。 – 2014-10-01 02:52:04