PHP,
pasted
on Aug 13:
|
<?php
// This converts correctly
$arr = array(
0 => (object) array('id'=>1,'key'=>'value'),
1 => (object) array('id'=>2,'key'=>'value'),
2 => (object) array('id'=>3,'key'=>'value')
);
var_dump(json_encode($arr));
// string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"
// This does not, because the indexes don't start from 0
$arr = array(
1 => (object) array('id'=>1,'key'=>'value'),
2 => (object) array('id'=>2,'key'=>'value'),
3 => (object) array('id'=>3,'key'=>'value')
);
var_dump(json_encode($arr));
// string(82) "{"1":{"id":1,"key":"value"},"2":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"
// Neither does this, because the indexes are not contiguous
$arr = array(
0 => (object) array('id'=>1,'key'=>'value'),
1 => (object) array('id'=>2,'key'=>'value'),
3 => (object) array('id'=>3,'key'=>'value')
);
var_dump(json_encode($arr));
// string(82) "{"0":{"id":1,"key":"value"},"1":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"
// But this does work. Apparently key type is not an issue.
$arr = array(
'0' => (object) array('id'=>1,'key'=>'value'),
'1' => (object) array('id'=>2,'key'=>'value'),
'2' => (object) array('id'=>3,'key'=>'value')
);
var_dump(json_encode($arr));
// string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"
|
Output:
|
string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"
string(82) "{"1":{"id":1,"key":"value"},"2":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"
string(82) "{"0":{"id":1,"key":"value"},"1":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"
string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"
|
|