PHP json在JavaScript中自动排序
我从PHP获取JSON,并在JavaScript中使用它来输入选择框选项值。 但是当我把我的PHP端JSON放在JavaScript中时,它会自动排序 不应该这样做 实际上,我使用这个JSON作为HTML选择框选项值 我需要来自PHP端的原始数据 JSON来自PHP端:PHP json在JavaScript中自动排序,javascript,php,jquery,html,json,Javascript,Php,Jquery,Html,Json,我从PHP获取JSON,并在JavaScript中使用它来输入选择框选项值。 但是当我把我的PHP端JSON放在JavaScript中时,它会自动排序 不应该这样做 实际上,我使用这个JSON作为HTML选择框选项值 我需要来自PHP端的原始数据 JSON来自PHP端: $optionJSON= json_encode($optionValues); { "0":"Select", "37":"Abc", "47":"DEF", "359":"GHI",
$optionJSON= json_encode($optionValues);
{
"0":"Select",
"37":"Abc",
"47":"DEF",
"359":"GHI",
"182":"JKL",
"360":"MNO",
"183":"PQR",
"320":"STU",
"38":"VWX",
"80":"YZA"
}
PHP代码:
$optionJSON= json_encode($optionValues);
{
"0":"Select",
"37":"Abc",
"47":"DEF",
"359":"GHI",
"182":"JKL",
"360":"MNO",
"183":"PQR",
"320":"STU",
"38":"VWX",
"80":"YZA"
}
结果:
$optionJSON= json_encode($optionValues);
{
"0":"Select",
"37":"Abc",
"47":"DEF",
"359":"GHI",
"182":"JKL",
"360":"MNO",
"183":"PQR",
"320":"STU",
"38":"VWX",
"80":"YZA"
}
在浏览器控制台中显示,在选择框选项值中的顺序相同。
{
"0": "Select",
"37": "Abc",
"38": "VWX",
"47": "DEF",
"80": "YZA",
"182": "JKL",
"183": "PQR",
"320": "STU",
"359": "GHI",
"360": "MNO"
}
在对象实例中传递JSON对象,不能依赖元素的顺序 改用数组,或者给每个对象某种排序顺序,然后在客户端对列表进行排序
var x = [
{"0":"Select"},
{"37":"Abc"},
{"47":"DEF"},
{"359":"GHI"},
{"38":"VWX"}
];
返回如下所示的数组:
$result = array(
array('value' => 0, 'text' => 'Select'),
array('value' => 37, 'text' => 'Abc'),
array('value' => 47, 'text' => 'DEF'),
array('value' => 359, 'text' => 'GHI'),
array('value' => 182, 'text' => 'JKL'),
array('value' => 360, 'text' => 'MNO'),
array('value' => 183, 'text' => 'PQR'),
array('value' => 320, 'text' => 'STU'),
array('value' => 38, 'text' => 'VWX'),
array('value' => 80, 'text' => 'YZA')
);
echo json_encode($result);
执行此操作时,输出为:
[{"value":0,"text":"Select"},{"value":37,"text":"Abc"},{"value":47,"text":"DEF"},{"value":359,"text":"GHI"},{"value":182,"text":"JKL"},{"value":360,"text":"MNO"},{"value":183,"text":"PQR"},{"value":320,"text":"STU"},{"value":38,"text":"VWX"},{"value":80,"text":"YZA"}]
当我将其复制到Javascript并使用
JSON.parse()
时,结果是按所需顺序的。参见这不是ECMA规定的行为。您不能依赖于此浏览器的独立性。%)p未指定对象中元素的顺序,无法控制它。如果希望值保持特定顺序,请使用数组。@Barmar请给我一个示例JSON来自PHP,因此最好显示此数据的PHP语法。很抱歉,Barmar先生的问题是相同的..:(