>  기사  >  백엔드 개발  >  javascript - Ajax에 응답할 때 PHP는 어떻게 json 객체를 반환합니까?

javascript - Ajax에 응답할 때 PHP는 어떻게 json 객체를 반환합니까?

WBOY
WBOY원래의
2016-12-01 00:57:03939검색

json 문자열을 에코하는 방법인가요?

<code>function my()
{
    ...
    
    echo {"code":"NO_ERROR","msg":"获取系统参数成功"}
}</code>

답글 내용:

json 문자열을 에코하는 방법인가요?

<code>function my()
{
    ...
    
    echo {"code":"NO_ERROR","msg":"获取系统参数成功"}
}</code>

<code>$.ajax({
    type: "GET",
    url: "http://www.example.com/json.php",
    data: {name:"ele", pass:"123"}, //这里的data是参数,跟下面回调函数里服务器返回的data不是一个东西
    success: function(data){ console.log(data); }
});
<?php
$arr = array(
    'code' => 'NO_ERROR',
    'msg' => '获取系统参数成功',
);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($arr);</code>

귀하의 구체적인 문제 상황은 모르지만, 제 개발 경험을 바탕으로 답변해 드리겠습니다. java에서 php를 호출하여 json이 반환되는 경우가 있는데, json_encode에서 빈 배열을 사용하면 현재로서는 이를 인식할 수 없습니다. 또 다른 판단이 필요합니다. 전달한 객체가 비어 있는지 판단해야 합니다. json_encode(array('data' => (empty($data) ? new stdclass() : $data)))

특수 문자열 등 문자열을 직접 작성하다 보면 실수하기 쉽습니다. 강력한 PHP 방식인 json_encode($obj)를 사용하는 것을 권장합니다

사실 굳이 이렇게 쓸 필요는 없습니다. 보통 배열로 쓰는 경우가 많습니다. 그렇다면 json_encode로 충분합니다

$this->ajaxReturn(json_encode($data), "JSON");

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.