php 5.2.1 이상이면 json이 기본으로 내장되어 있죠...
그중 json_decode 함수는 json문자열을 php배열을 바꾸어주는 기능을 합니다...
그런데 변환이 잘 되다가도 가끔씩 배열 대신 null이 나오는 경우가 있는데요...
제가 직접 php로 웹서버를 제작중에 null이 발생했던 경우는 다음과 같이 2가지 였습니다...
첫번째는 json문자열에 \"이 포함되어 있을때입니다...
예를 들어 {\"name\":\"youngjin\"} 문자열을 json_decode로 바꾸고자 할때 null이 발생합니다...
이경우는 클라이언트나 다른 서버에서 json문자열형태로 파라미터값을 받을때 종종 나타납니다...
해결책은 당연히 다음과 같이 \"를 "로 바꾸어주면 되겠죠^^
function getJsonText($jsontext) {
return str_replace("\\\"", "\"", $jsontext);
}
$codes = json_decode(getJsonText($_POST[code]));
두번째는 php배열을 그대로 json_decode로 변환할려고 할때입니다...
이것은 java에서 JSONObject나 JSONArray 객체의 편의성때문에 햇갈려서 실수를 하는 경우인데요... 적어도 저는 그랬습니다ㅎㅎㅎ
java의 json객체는 하위 json객체를 바로 열람할수 있지만 php는 아직 그런기능이 없는듯 합니다(아니면 제가 모르는것일수도;;;)
어잿든 하위 json객체를 열람할때는 다음과 같이 문자열로 바꿔준다음 다시 배열로 바꾸어주어야 하네요^^
$json_object_array = json_decode($text, true);
$sub_json_object_array = json_decode(json_encode($json_array), true);
'개발 > php, javascript' 카테고리의 다른 글
Int 난수 함수로 Float 난수 깔끔하게 발생시키기 (0) | 2019.12.26 |
---|---|
삼각 분포로 난수 발생시키기 (0) | 2019.10.28 |
삼각행렬로 연립방정식 단번에 구하기 (0) | 2019.08.19 |
round()를 5의 배수로도 반올림 해보자 (0) | 2018.11.26 |
javascript 로 애니메이션 움직임 만들기 (0) | 2013.09.02 |