2016-03-24 3 views
-2

Как отображать свойства этого JSON в PHP? Я читаю JSON из файла, который содержит несколько объектов JSON. Я хочу распечатать и отобразить только свойство src_ip.Показать свойства объекта JSON с помощью PHP

РНР

json_string = file_get_contents("eve.json"); 

JSON

{ 
    "timestamp": "2016-03-24T20:41:16.751426", 
    "event_type": "alert", 
    "src_ip": "192.168.0.102", 
    "dest_ip": "192.168.0.105", 
    "proto": "ICMP", 
    "icmp_type": 8, 
    "icmp_code": 0, 
    "alert": 
    "action": "allowed", 
    "gid": 1, 
    "signature_id": 2100480, 
    "rev": 6, 
    "signature": "GPL ICMP_INFO PING speedera", 
    "category": "Misc activity", 
    "severity": 3 
} 
} 
+0

Как вы ожидаете от этого быть? –

+0

Я хочу показать его в php-файле и wnna заблокировать адрес src ip и отобразить только заблокированные данные ip-адреса src – ZaonX

+0

$ json_string = file_get_contents ("eve.json"); – ZaonX

ответ

0

ли, как показано ниже:

$json_string = file_get_contents("eve.json"); 

$array = json_decode($json_string,true); 
print_r($array); //print array 

И получить значение src_ip как:

echo $array['src_ip']; 
+0

ее не работает :( – ZaonX

+0

ZaonX

+0

Он должен работать.Пожалуйста, подтвердите свой json, используя [jsonlint] (http: // http: //jsonlint.com/). –

1

Json к объекту;

<?php 
    //$json_string = file_get_contents("eve.json"); 
    $json ='{"timestamp":"2016-03-24T20:41:16.751426","event_type":"alert","src_ip":"192.168.0.102","dest_ip":"192.168.0.105","proto":"ICMP","icmp_type":8,"icmp_code":0,"alert":{"action":"allowed","gid":1,"signature_id":2100480,"rev":6,"signature":"GPL ICMP_INFO PING speedera","category":"Misc activity","severity":3}}'; 
    $obj = json_decode($json); 
    // print_r($obj); 

    echo $obj->src_ip; 
?> 

Проверьте результат: https://eval.in/541978

или Json в массиве;

<?php 
    //$json_string = file_get_contents("eve.json"); 
    $json ='{"timestamp":"2016-03-24T20:41:16.751426","event_type":"alert","src_ip":"192.168.0.102","dest_ip":"192.168.0.105","proto":"ICMP","icmp_type":8,"icmp_code":0,"alert":{"action":"allowed","gid":1,"signature_id":2100480,"rev":6,"signature":"GPL ICMP_INFO PING speedera","category":"Misc activity","severity":3}}'; 
    $array = json_decode($json, true); 
    // print_r($array); 

    echo $array['src_ip']; 
?> 

Проверьте результат: https://eval.in/541976

+1

Это не даст ответа в массиве. результат будет передаваться массивом 'true' parame ter к json_decode, а также вы использовали неправильный json. –

+0

Да, вы правы. Я скучал. –

0

В PHP есть json_decode(), который берет строку JSON как параметр и возвращает объект JSON в виде php-массива:

<? 
    json_decode($json); 
?> 

Где $ json - это строка, содержащая объект json. json_encode() является обратным.

Смежные вопросы