2013-09-24 26 views
5

Đây là văn bản json:php và lồng nhau json: làm thế nào tôi có thể truy cập vào yếu tố này?

{ 
"data": { 
    "current_condition": [{ 
     "cloudcover": "75", 
     "humidity": "63", 
     "observation_time": "03:41 PM", 
     "precipMM": "0.0", 
     "pressure": "1020", 
     "temp_C": "15", 
     "temp_F": "59", 
     "visibility": "16", 
     "weatherCode": "116", 
     "weatherDesc": [{ 
      "value": "Partly Cloudy" 
     }], 
     "weatherIconUrl": [{ 
      "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png" 
     }], 
     "winddir16Point": "SSE", 
     "winddirDegree": "160", 
     "windspeedKmph": "7", 
     "windspeedMiles": "4" 
    }], 
    "request": [{ 
     "query": "Northville, United States Of America", 
     "type": "City" 
    }], 
    "weather": [{ 
     "date": "2013-09-24", 
     "precipMM": "0.0", 
     "tempMaxC": "20", 
     "tempMaxF": "67", 
     "tempMinC": "8", 
     "tempMinF": "47", 
     "weatherCode": "113", 
     "weatherDesc": [{ 
      "value": "Sunny" 
     }], 
     "weatherIconUrl": [{ 
      "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png" 
     }], 
     "winddir16Point": "ESE", 
     "winddirDegree": "111", 
     "winddirection": "ESE", 
     "windspeedKmph": "10", 
     "windspeedMiles": "6" 
    }] 
} 

}

Tôi đang cố gắng để echo 'temp_F' và nó không được làm việc. Tôi không thể hiểu được tôi đang làm gì sai. Tôi nhận được điều này đến nay:

$url = file_get_contents("http://blahblahblahblah"); 
$arr = json_decode($url,true); 

Và đó là nơi tất cả đều không thành công. Tôi đã thực hiện var_dump của vì vậy tôi biết dữ liệu là có. Nhưng mọi nỗ lực 'echo' tôi chỉ thử kết quả trong 'Array' được hiển thị trên màn hình. Tôi đã thử nhiều biến thể sau:

echo $arr->{'data'}->{'current_condition[0]'}->{'temp_F'}; 

Ai đó có thể cho tôi biết tôi đang làm gì sai? Cảm ơn!

+0

Bạn thực sự sẽ thấy 'Đang cố gắng lấy thuộc tính không đối tượng ...' nếu báo cáo lỗi của bạn được kích hoạt. – ComFreek

Trả lời

10

json_decode() với TRUE như tham số thứ hai mang đến cho bạn một mảng kết hợp. Nhưng bạn hiện đang cố gắng truy cập nó như một đối tượng.

Hãy thử như sau:

echo $arr['data']['current_condition'][0]['temp_F']; 
0

đó là không làm thế nào bạn truy cập vào mảng trong PHP

$array['index']="value"; 

echo $array['index1']['index2'] 

Ví dụ của bạn:

echo $arr['data']['current_condition'][0]['temp_F'] 
0

Bạn có thể sử dụng json để lấy kết quả json cho một biến và sau đó sử dụng thông tin biến để hiển thị trong js.

$.ajax({ 
    'type': 'GET', 
    'url': 'abc.com, 
    'dataType': 'json', 
    success: function (data) { 

    var response = data; 
    // alert(response.data.current_condition) //something like that 
    // for (var i = 0; i < response.length; i++) { } 

    } 
Các vấn đề liên quan