Notice
Recent Posts
Recent Comments
Tags
- javascript redirection
- javascript 바코드 생성
- 바코드 생성하기
- ViewData
- SSD 복사
- asp.net dropdownlist
- 404에러페이지
- 파일업로드 유효성체크
- jquery 바코드
- 강제이동
- XSS방어
- ViewBag
- javascript 유효성체크
- 하드 윈도우 복사
- 바코드 스캔하기
- jquery 바코드생성
- asp.net Select
- 타임피커
- XSS PHP
- django 엑셀불러오기
- 파일업로드 체크
- 말줄임표시
- ASP.Net Core 404
- php 캐쉬제거
- TempData
- Mac Oracle
- 하드 마이그레이션
- javascript 바코드스캔
- 맥 오라클설치
- asp.net core Select
웹개발자의 기지개
[php] json_decode 파싱하기 - 객체 or 배열로 본문
json 데이터를 파싱하는 방법을 다시 정리해 보았다.
json_encode 로 json 을 만들고 json_decode 로 간단히 파싱을 할 수 있는데,
이번에는 json_decode 이다.
[ 실제 json 데이터 ]
{"startDate":"2020-06-07","endDate":"2020-06-13","timeUnit":"date","results":[{"title":"패션의류","category":["50000000"],"data":[{"period":"2020-06-07","ratio":100},{"period":"2020-06-08","ratio":98.14953},{"period":"2020-06-09","ratio":96.48507},{"period":"2020-06-10","ratio":95.7726},{"period":"2020-06-11","ratio":88.51052},{"period":"2020-06-12","ratio":76.7822},{"period":"2020-06-13","ratio":81.56885}]},{"title":"남성의류","category":["50000169"],"data":[{"period":"2020-06-07","ratio":37.98104},{"period":"2020-06-08","ratio":39.0699},{"period":"2020-06-09","ratio":38.14919},{"period":"2020-06-10","ratio":38.6986},{"period":"2020-06-11","ratio":34.84853},{"period":"2020-06-12","ratio":30.14323},{"period":"2020-06-13","ratio":30.91317}]}]}
눈에 잘 안들어 온다.
시각화하여 볼 수 있도록 아래의 사이트에서 json 데이터를 올려보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?
// 배열로 파싱
$arr = json_decode($response,true);
echo $arr["startDate"] ."<br>";
echo $arr["endDate"] ."<br>";
echo $arr["timeUnit"] ."<br>";
echo sizeof($arr["results"]). "<br>";
foreach($arr["results"] as $arr2) {
echo $arr2["title"] . "<br>";
echo $arr2["category"][0] . "<br>";
foreach($arr2["data"] as $arr3) {
echo ": ". $arr3["period"] . "<br>";
echo ": ". $arr3["ratio"] . "<br>";
}
}
?>
|
cs |
json_decode 의 두번째 인수를 true 로 하면 배열값으로 리턴된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?
// 객체로 파싱
$obj = json_decode($response);
echo $obj->startDate . "<br>";
echo $obj->endDate . "<br>";
echo $obj->timeUnit . "<br>";
echo $obj->results[0]->title . "<br>";
echo $obj->results[0]->category[0] . "<br>";
echo ": " . $obj->results[0]->data[0]->period . "<br>";
echo ": " . $obj->results[0]->data[0]->ratio . "<br>";
echo ": " . $obj->results[0]->data[1]->period . "<br>";
echo ": " . $obj->results[0]->data[1]->ratio . "<br>";
echo "<br>";
echo $obj->results[1]->title . "<br>";
echo $obj->results[1]->category[0] . "<br>";
echo ": " . $obj->results[1]->data[0]->period . "<br>";
echo ": " . $obj->results[1]->data[0]->ratio . "<br>";
echo ": " . $obj->results[1]->data[1]->period . "<br>";
echo ": " . $obj->results[1]->data[1]->ratio . "<br>";
?>
|
cs |
data 의 배열값이 모두 5개인데 일부분만 0번, 1번만 출력해 보았다.
json_decode의 두번째 인수가 없다면 stdClass() 객체로 리턴값이 반환된다.
https://zetawiki.com/wiki/PHP_json_decode()
'PHP' 카테고리의 다른 글
[php] PHPMailer 사용시 확인할 점 - SMTP Error: Could not authenticate (0) | 2020.08.07 |
---|---|
[php] RSS, xml 파싱하기 1 (0) | 2020.07.03 |
[php] xml 파싱 - simplexml_load_string 이용하기 (GET) (0) | 2020.06.14 |
[php] 이름명 *로 변경하기 (0) | 2020.06.05 |
[php] 이미지 리사이징 3 - 간단 예제 (0) | 2020.05.20 |
Comments