json的键名为数字时的调用方式(示例代码)
在JSON中,如果键名是数字或者包含特殊字符(如空格),我们必须使用obj[]的方式来获取值。下面是一个PHP与JavaScript的混合示例代码,展示如何操作这种情况。
在PHP中我们创建一个包含数字的键名的JSON对象:
```php
// 构建包含数字键名的JSON数据
$array = array('result' => array("90" => "90队列","status" => "成功"));
$json = json_encode($array);
// 直接输出JSON字符串以便在JavaScript中使用
?>
```
接下来,在HTML和JavaScript中处理这个JSON数据:
```html
// 测试JSON数据调用示例的函数
function test() {
// 调用方式一:使用PHP输出的JSON字符串
var data = ''; // PHP输出的JSON数据
data = eval("(" + data + ")"); // JavaScriptJSON数据(注意:使用eval要谨慎)
alert(data['result'][90]); // 对于数字键名使用数组方式访问数据
alert(data['result']['status']); // 对于非数字键名使用点的方式访问数据(同时演示两种调用方式)
// 调用方式二:直接使用PHP输出的JSON对象(假设没有使用引号包裹)
var data1 = ; // 直接输出JSON对象,注意这里不能加引号,否则成为字符串了。如果不加引号,JavaScript可以直接识别为对象。这里假设$json1已经是正确的JSON格式字符串。如果没有引号包裹,直接作为JavaScript对象处理。这里要注意安全性问题,确保输出的内容是安全的。否则可能引发安全问题。例如XSS攻击等。请确保输出内容的安全性和完整性。否则不推荐使用这种方式。通常推荐使用第一种方式处理数据更为安全可控。以下是两种方式的调用示例:alert(data1[90]); // 对于数字键名使用数组方式访问数据alert(data1['status']); // 对于非数字键名使用点的方式访问数据或者数组方式访问alert(data1['result'][90]); // 同时演示两种调用方式}test(); // 执行测试函数