[php] PHP에서 JavaScript로 JSON을 반환 하시겠습니까?

jQuery AJAX를 통해 호출되는 PHP 스크립트가 있습니다. PHP 스크립트가 JSON 형식의 데이터를 자바 스크립트로 반환하기를 원합니다. PHP 스크립트의 유사 코드는 다음과 같습니다.

$json = "{";
foreach($result as $addr)
{
    foreach($addr as $line)
    {
        $json .= $line . "\n";
    }
    $json .= "\n\n";
}
$json .= "}";

기본적으로 $ json에 두 개의 for 루프를 삽입해야합니다.



답변

Php에는 JSON 직렬화 기능이 내장되어 있습니다.

json_encode

json_encode

Not Invented Here Here 증후군을 겪을 수 있거나 겪지 않는 경우 사용 하십시오 .


답변

이전 답변에서 누락 된 몇 가지 사항은 다음과 같습니다.

  1. PHP에서 헤더를 설정하십시오.

    header('Content-type: application/json');
    echo json_encode($array);
  2. json_encode()자바 스크립트 반환 할 수 배열 대신 자바 스크립트 객체를 참조하십시오
    는 PHP 스크립트에서 JSON 반환
    이 것은 배열과 객체가 동일하지 않은 일부 경우 알고있는 것이 중요 할 수있다.


답변

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}
?>


답변

일반적으로 수신 측의 데이터 구조에 관심이 있습니다.

json_encode($result)

이렇게하면 배열 키도 유지됩니다.

json_encode는 utf8 인코딩 데이터에서만 작동합니다.


답변

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();
?>


답변

$ msg = “잘못된 사용자 이름 또는 비밀번호를 입력했습니다”; $ responso = json_encode ($ msg);

echo "{\"status\" : \"400\", \"responce\" : \"603\", \"message\" : \"You Enter Wrong Username OR Password\", \"feed\":".str_replace("<p>","",$responso). "}";


답변