究竟是什么结构

时间:2011-04-11 10:48:46

标签: php javascript jquery

这是一个包含对象或对象数组的对象吗?

var rgb = {
  ball: { Red: 232, Green: 23, Blue: 23},
  square: { Red: 42, Green: 83, Blue: 32},
};

我需要用php生成它,然后在我的脚本中声明它,所以想知道我应该在php中构建什么

4 个答案:

答案 0 :(得分:6)

这是一个对象,它包含两个属性:ballsquare

这些属性中的每一个都是一个对象,包含三个属性RedGreenBlue - 这些是数字。


在Javascript中:

  • {}表示对象:{item1: 'value1', item2: 123}
  • []表示数组:[1, 2, 3, 4]


从PHP,您可以使用以下内容构建等效的数据结构:

$data = (object)array(
    'ball' => (object)array('Red' => 232, 'Green' => 23, 'Blue' => 23), 
    'square' => (object)array('Red' => 42, 'Green' => 83, 'Blue' => 32), 
);

然后,使用json_encode()函数将其转换为JSON:

$json = json_encode($data);
echo $json;

答案 1 :(得分:2)

它是一个包含其他对象的Javascript对象。

您应该可以使用json_encode()JSON_FORCE_OBJECT参数在PHP中生成它,如下所示:

$rgb = new STDClass();
$rgb->ball = new STDCLass();
$rgb->square = new STDCLass();
$rgb->ball->Red = 232;
$rgb->ball->Green = 23;

// .... and so on

echo json_encode($rgb, JSON_FORCE_OBJECT);

答案 2 :(得分:0)

这是一个具有两个属性ballsquare的对象,它们本身就是对象。它们都具有RedGreenBlue

属性

答案 3 :(得分:0)

$array = array('ball'=>array('Red'=>232));
var_dump(json_encode($array));

这只是短版本。您应该能够自己添加其他密钥。

因为Javascript不知道关联数组,所以不需要在这里使用对象,因为它会产生相同的JSON编码字符串。