2014-08-28 106 views
0

我有以下生成的JSON结果,并想找出我如何可以将结果分为2个变量:独立JSON结果到变量

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代码仍然打印结果两次。谢谢

回答

1

那么,你有一个额外的线,你可能不需要。

print to_json(get_all_alert());

删除,你的问题很可能会消失。

+0

谢谢,这工作,但仍然有一个问题。 json格式不是好的 – Chelseawillrecover 2014-08-28 11:06:23

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']); 
+0

谢谢,我能够使用您的答案来纠正错误并解决问题。 – Chelseawillrecover 2014-08-28 15:08:08