我有以下生成的JSON结果,想知道如何将结果分成2个变量:
JSON
{
"data": [
[
{
"source": "server1",
"host": "pc1",
"description": "SSH server is down on {HOSTNAME}",
}
],
[
{
"source": "server2",
"host": "pc2",
"description": "webapp down",
}
]
],
"error": {
"server3": "Host is not allowed to connect to this MySQL server",
"server4": "Can't connect to MySQL server",
}
}
预期结果:
{
"data": [
{
"source": "server1",
"host": "pc1",
"description": "SSH server is down on {HOSTNAME}",
},
{
"source": "server2",
"host": "pc2",
"description": "webapp down",
}
]
}
和
{
"error": {
"server3": "Host is not allowed to connect to this MySQL server",
"server4": "Can't connect to MySQL server",
}
}
PHP代码:
<?php
include '../include/db_conn.php';
print to_json(get_all_alert());
$return = get_all_alert();
print to_json($return["data"]);
print to_json($return["error"]);
?>
php代码仍会将结果打印两次。感谢
答案 0 :(得分:2)
你的json数据不正确你可以在这里查看:http://json.parser.online.fr/ 从每个数组部分删除额外的逗号。
试试这个:
<?php
$data1='{
"data": [
[
{
"source": "server1",
"host": "pc1",
"description": "SSH server is down on {HOSTNAME}"
}
],
[
{
"source": "server2",
"host": "pc2",
"description": "webapp down"
}
]
],
"error": {
"server3": "Host is not allowed to connect to this MySQL server",
"server4": "Cant connect to MySQL server"
}
}';
$val_array = json_decode($data1,true);
print_r($val_array['data']);
print_r($val_array['error']);
答案 1 :(得分:1)
嗯,你可能还有一条你可能不需要的额外线。
print to_json(get_all_alert());
删除它,你的问题可能会消失。