답변:
Php에는 JSON 직렬화 기능이 내장되어 있습니다.
json_encode
Not Invented Here Here 증후군을 겪을 수 있거나 겪지 않는 경우 사용 하십시오 .
이전 답변에서 누락 된 몇 가지 사항은 다음과 같습니다.
PHP에서 헤더를 설정하십시오.
header('Content-type: application/json');
echo json_encode($array);
json_encode()
자바 스크립트 반환 할 수 배열 대신 자바 스크립트 객체를 참조하십시오
는 PHP 스크립트에서 JSON 반환
이 것은 배열과 객체가 동일하지 않은 일부 경우 알고있는 것이 중요 할 수있다.
json_encode()
(모든 기능과 마찬가지로) 항상 (을 포함하여 NULL
) 무언가를 반환한다는 것을 명심하십시오 . 데이터를 인쇄하고 처리 한 다음 인쇄하여 나중에 사용할 수 있도록 변수에 저장하거나 파일에 저장하는 등의 작업을 수행 할 수 있습니다 . PHP : Returning valuesreturn
에서 더 많은 내용 을 읽을 수 있습니다 . 또한 당신은 (그리고해야!) 각 기능을 사용하면 수익을 모르는 무엇을위한 검사는, 우리의 예를 볼 수있다 ()로 json_encode를 이 상태 JSON 실패에 성공 FALSE에 문자열을 인코딩줍니다.
return json_encode($jsonArray);
나중에 그것을 알아 차릴 때까지 왜 작동하지 않는지 궁금 했습니다 (AngularJS http.get은 아무것도 얻지 못했습니다).
PHP 문서 에는 JSON 섹션 이 있습니다. 그래도 PHP 5.2.0이 필요합니다.
PHP 5.2.0부터 JSON 확장은 기본적으로 번들로 제공되고 PHP로 컴파일됩니다.
그렇지 않은 경우 설치할 수 있는 PECL 라이브러리는 다음 과 같습니다 .
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>
PHP 용 Simple JSON을 사용할 수 있습니다 . JSON을 위조하는 데 도움이되는 헤더를 보냅니다.
그것은 다음과 같습니다
<?php
// Include the json class
include('includes/json.php');
// Then create the PHP-Json Object to suits your needs
// Set a variable ; var name = {}
$Json = new json('var', 'name');
// Fire a callback ; callback({});
$Json = new json('callback', 'name');
// Just send a raw JSON ; {}
$Json = new json();
// Build data
$object = new stdClass();
$object->test = 'OK';
$arraytest = array('1','2','3');
$jsonOnly = '{"Hello" : "darling"}';
// Add some content
$Json->add('width', '565px');
$Json->add('You are logged IN');
$Json->add('An_Object', $object);
$Json->add("An_Array",$arraytest);
$Json->add("A_Json",$jsonOnly);
// Finally, send the JSON.
$Json->send();
?>