반응형
EX) 간단한 구조의 JSON 불러오기
test.json
{
"name": "John Doe",
"age": 30,
"hobbies": ["reading", "swimming", "traveling"],
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
}
load.php
<?php
$json = file_get_contents('test.json'); //test.json 파일 읽어옴
$data = json_decode($json, true); // JSON을 PHP 배열로 변환
$city = $data['address']['city']; // "Anytown" 반환
echo "" .$city; // 출력
?>
EX) 복잡한 구조의 JSON 불러오기
test.json
{
"destination_addresses" : [ "대한민국 광주광역시" ],
"origin_addresses" : [ "대한민국 인천광역시" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "327 km",
"value" : 326827
},
"duration" : {
"text" : "4시간 5분",
"value" : 14680
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
load.php
<?php
$json = file_get_contents('test.json'); //test.json 파일 읽어옴
$data = json_decode($json, true); // JSON을 PHP 배열로 변환
$distance_text = $data['rows'][0]['elements'][0]['distance']['text']; // 각 요소들의 인덱스를 이용하여 distance의 text부분을 불러옴
echo $distance_text; // 출력 결과: 327 km
?>
EX) 복잡한 구조의 JSON 파일 배열을 재귀적으로 탐색
test.json
{
"name": "John",
"age": 30,
"pets": [
{
"name": "Fluffy",
"type": "cat",
"age": 5
},
{
"name": "Fido",
"type": "dog",
"age": 3
}
]
}
load.php
<?php
function search($array, $key, $value)
{
$results = array();
if (is_array($array)) {
if (isset($array[$key]) && $array[$key] == $value) {
$results[] = $array;
}
foreach ($array as $subarray) {
$results = array_merge($results, search($subarray, $key, $value));
}
}
return $results;
}
$json = file_get_contents('test.json');
$data = json_decode($json, true);
$results = search($data['pets'], 'name', 'Fluffy');
foreach ($results as $result) {
echo "Found pet: " . $result['name'] . " (" . $result['type'] . ")\n";
}
?>
$array에서 $key와 $value가 일치하는 원소들을 모두 찾아서 배열로 반환
반응형
'Coding > PHP' 카테고리의 다른 글
[PHP] CURL API 여러개의 URL 병렬 요청(curl_multi_init) (0) | 2023.11.30 |
---|---|
[PHP] PHP로 Ping 모니터링 구현 (0) | 2022.12.02 |
[PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장 (0) | 2022.11.30 |
[PHP] 특정 디렉터리에서 가장 최신 파일 출력 및 SQL ISNERT (0) | 2022.11.30 |
[PHP] PHP에서 MySQL로 간단한 이미지 업로드 및 불러오기 (0) | 2022.11.28 |
댓글