这是一个包含对象或对象数组的对象吗?
var rgb = {
ball: { Red: 232, Green: 23, Blue: 23},
square: { Red: 42, Green: 83, Blue: 32},
};
我需要用php生成它,然后在我的脚本中声明它,所以想知道我应该在php中构建什么
答案 0 :(得分:6)
这是一个对象,它包含两个属性:ball
和square
。
这些属性中的每一个都是一个对象,包含三个属性(Red
,Green
和Blue
) - 这些是数字。
在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)
这是一个具有两个属性ball
和square
的对象,它们本身就是对象。它们都具有Red
,Green
和Blue
答案 3 :(得分:0)
$array = array('ball'=>array('Red'=>232));
var_dump(json_encode($array));
这只是短版本。您应该能够自己添加其他密钥。
因为Javascript不知道关联数组,所以不需要在这里使用对象,因为它会产生相同的JSON编码字符串。