수천 번 질문했지만이 작업을 올바르게 수행하는 방법에 대한 좋은 자습서를 찾을 수 없다면 사과드립니다. 스택에서 검색하는 것이 가장 중요합니다. 거기에 대한 50 개 항목에PHP로 JSON 데이터 가져 오기
{
"store":"Store 1",
"cat":"Categories",
"general_cat":"Categories",
"spec_cat":"Accessories"
},
{
"store":"Store 1",
"cat":"Categories",
"general_cat":"Categories",
"spec_cat":"Accessories"
},
:
은 내가 JSON의이 같은 데이터가 파일이 있습니다. 이 데이터를 구문 분석하고 값을 변수에 저장하려고합니다.
은 지금까지 나는 시도했다 :
$string = file_get_contents("jsonFile.json");
$json_array = json_decode($string,true);
foreach ($json_array as $key => $value){
$store = $key -> store;
$general_cat = $key -> general_cat;
$spec_cat = $key -> spec_cat;
if (!is_null($key -> mainImg_select)){
$cat = $key -> cat;
}
echo $headURL;
}
이 발생되는 오류 "가 아닌 객체의 속성을 얻기 위해 노력"에. 여기서 내가 뭘 잘못하고 있니?
먼저 차이를 설명 할 것이다, 당신의 JSON 코드는 의미 상 올바르지 않습니다. 객체 목록은'[{...}, {...}]'와 같이'['와']'사이에 있어야합니다. 둘째,'json_decode'의 두 번째 매개 변수에 'true'값을 사용하고 있습니다. true로 설정하면 객체를 조작하지 않고 연관 배열을 조작합니다. 그래서'$ key-> store'는 사용할 수 없습니다. 동시에'$ value [ "store"]'일 수도 있습니다. – MatRt
JSON은 대괄호 사이에 있으며, 데이터가 저장되는 방식을 보여 주려했습니다.json_decode의 두 번째 값을 false로 설정하려고했지만 여전히 객체가 아닌 오류가 발생합니다. – Jascination
그것은'$ key'가 아니라'$ value'를 사용해야하기 때문입니다. 내 대답을 완전히 읽으십시오. 'json_decode' 다음에,'$ json_array'는 연관 배열의 배열입니다. 그래서,'$ key'는 수치 인덱스이고,'$ value'는 당신이 조작 할 배열입니다. – MatRt