我正试图发现是什么php数组为您提供了这个json
{
"sEcho": 67,
"iTotalRecords": "4075",
"iTotalDisplayRecords": "4075",
"aaData": [
[
"215",
"Manaus",
"BRA",
"Amazonas",
"1255049"
],
[
"216",
"Belém",
"BRA",
"Pará",
"1186926"
],
[
"217",
"Guarulhos",
"BRA",
"São Paulo",
"1095874"
],
[
"218",
"Goiânia",
"BRA",
"Goiás",
"1056330"
],
[
"219",
"Campinas",
"BRA",
"São Paulo",
"950043"
],
[
"220",
"São Gonçalo",
"BRA",
"Rio de Janeiro",
"869254"
],
[
"221",
"Nova Iguaçu",
"BRA",
"Rio de Janeiro",
"862225"
],
[
"222",
"São LuÃs",
"BRA",
"Maranhão",
"837588"
],
[
"223",
"Maceió",
"BRA",
"Alagoas",
"786288"
],
[
"224",
"Duque de Caxias",
"BRA",
"Rio de Janeiro",
"746758"
]
]
}
我正在试用这个
$array = array(
"foo" => "more foo",
"st" => "bar",
"ty" => "stuff",
"multi" => array(
"array" => "foo",
"the" => "stuff"
),
array(array(
"array" => "foo",
"the" => "stuff"
)),
array(array(
"array" => "foo",
"the" => "stuff"
)),
array(array(
"array" => "foo",
"the" => "stuff"
))
);
echo "<pre>";
print_r(json_encode($array));
echo "</pre>";
但是我的json有一个花括号
{"foo":"更多foo","st":"bar","ty":"stuff","multi":{"array":"foo"、"the":"stoff"},"0":[{"array":"foo"、
如何更正数组以生成json?。
您有太多的深度数组,不应该指定键。在PHP数组中,如果您设置了一个字符串键并对其进行JSON编码,它将生成一个对象而不是数组。
$array = array(
"foo" => "more foo",
"st" => "bar",
"ty" => "stuff",
"multi" => array(
array(
'215',
'Manaus',
'BRA'
),
array(
'216',
'Belém',
'BRA'
),
array(
'217',
'Guarulhos',
'BRA'
)
)
);
echo json_encode($array);
输出:
{
"foo": "more foo",
"st": "bar",
"ty": "stuff",
"multi": [
[
"215",
"Manaus",
"BRA"
],
[
"216",
"Belém",
"BRA"
],
[
"217",
"Guarulhos",
"BRA"
]
]
}
使用数字索引!任何以字符串为键的东西都必须产生大括号,因为这是在javascript中拥有这些键的唯一方法。
json_encode(array("hello", "world")
["hello", "world"]
json数组索引必须是数字索引。任何非数字索引都将被转换为json对象。这就是为什么它被渲染成花括号的原因。
关于您最初的问题,以下PHP代码:header("内容类型:application/json");header("Access Control Allow Origin","*");header("Access Control Allow Methods:POST,OPTIONS");header("Access Control Allow Headers:Content Type");header("访问控制允许凭据:false");标题("访问控制最大年龄:60");
include "./inc/funclib.inc.php";
$array = array (
"sEcho" => 67,
"iTotalRecords" => "4075",
"iTotalDisplayRecords" => "4075",
"aaData" => array (
array ( "215", "Manaus", "BRA", "Amazonas", "1255049"),
array ( "216", "Belem", "BRA", "Para¡", "1186926"),
array ( "217", "Guarulhos", "BRA", "Sao Paulo", "1095874")
));
echo jsonIndent(json_encode($array));
返回输出:
{
"sEcho":67,
"iTotalRecords":"4075",
"iTotalDisplayRecords":"4075",
"aaData":[
[
"215",
"Manaus",
"BRA",
"Amazonas",
"1255049"
],
[
"216",
"Belem",
"BRA",
"Para'u00a1",
"1186926"
],
[
"217",
"Guarulhos",
"BRA",
"Sao Paulo",
"1095874"
]
]
}
这看起来像你要找的。我希望这将有所帮助:-)
如果同时指定了键和值,则需要使用大括号,只需指定值。
$array = array(
"foo" => "more foo",
"st" => "bar",
"ty" => "stuff",
"multi" => array(
"foo",
"stuff"
),
array(array(
"foo",
"stuff"
)),
array(array(
"foo",
"stuff"
)),
array(array(
"foo",
"stuff"
))
);