JSON响应返回undefined

首先使用'json_decode'将数组转换为JSON响应</ p>

  $ test = [“connections”=&gt;  [[“title”=&gt;  “连接1”,“日期”=&gt;  “01-26-2010”,“id”=&gt;  “1”]]]; 

echo json_encode($ test);
</ code> </ pre>

然后在前端处理JSON响应。</ p >

  $。get('http://cnbusiness.nextdayhost.com/ajax/get_business_connections',function(e){
console.log(e.connections);
} );
</ code> </ pre>

但不幸的是它返回'undefined'</ p>

< / p>

使用JSON编辑器的响应视图</ p>

</ p>

我可以这样做</ p>

  $。get('http://cnbusiness.nextdayhost.com/ajax/get_business_connections',function(e){
$。 each(JSON.parse(e),function(i,e){
$ .each(e,function(i,e){
console.log(e.title);
});
} );
});
</ code> </ pre>

当然 返回我想要的数据,但我不想做第二次循环。</ p>

任何想法,请帮忙吗?</ p>
</ div>

展开原文

原文

First use 'json_decode' to convert array to JSON response

$test = [ "connections" => [ [  "title" => "Connection 1", "date"  => "01-26-2010", "id" => "1" ] ] ];

echo json_encode( $test );

and then process the JSON response in the front-end side.

$.get( 'http://cnbusiness.nextdayhost.com/ajax/get_business_connections', function(e){
   console.log( e.connections );
});

but unfortunately it returns 'undefined'

enter image description here

A view of the response using a JSON editor

enter image description here

I can do this

$.get( 'http://cnbusiness.nextdayhost.com/ajax/get_business_connections', function(e){
  $.each(JSON.parse(e),function(i,e){
    $.each(e,function(i,e){
        console.log(e.title);
    });
  });
});

which surely returns the data that I want but I prefer not to do a second loop.

any idea, help please?

douju6752
douju6752 您可以尝试通过从上面的“$.get('cnbusiness.nextdayhost.com/ajax/get_business_connections',function(e){”运行这部分代码来测试它。
接近 3 年之前 回复
douzhi3586
douzhi3586 我猜你只需要解析输出为json只有varsome=JSON.parse(e)然后你在一些变量中有json对象
接近 3 年之前 回复
dongyanzhui0524
dongyanzhui0524 您可能需要等待响应才能访问数据。
接近 3 年之前 回复
dpjtn48868
dpjtn48868 它返回{“connections”:[{“title”:“Connection1”,“date”:“01-26-2010”,“id”:“1”}}},你怎么能在未定义中说出JSON响应?
接近 3 年之前 回复
dpe77294
dpe77294 看到我更新的帖子。
接近 3 年之前 回复
dongqiao1964
dongqiao1964 对于此特定请求的响应是什么,您可以在网络选项卡中看到此消息
接近 3 年之前 回复

2个回答



试试这个。 如果我没有弄错的话,我确定你 PHP </ code>中没有标题('Content-type:application / json')</ code>。 如果没有,它将作为字符串</ code>返回。 您需要使用方法</ code> </ p>中构建的 $。parseJSON </ code>解析它</ code>

   $ .get('http://cnbusiness.nextdayhost.com/ajax/get_business_connections',function(e){
$ .each($。parseJSON(e),function(i,e){
// code 这里......
});
});
</ code> </ pre>
</ div>

展开原文

原文

Try this. I'm sure you have no header('Content-type:application/json') in you PHP if I'm not mistaken. If you don't have, It will return as a string. You need to parse it by using $.parseJSON of jQuery built in method

$.get('http://cnbusiness.nextdayhost.com/ajax/get_business_connections', function(e) {
  $.each($.parseJSON(e),function(i,e){
    // code here ...
  });
});

drnrxv9383
drnrxv9383 我很高兴我帮助过你
接近 3 年之前 回复
douxu5845
douxu5845 谢谢,你是对的,我需要的是将标题设置为“header('Content-type:application / json')”
接近 3 年之前 回复
douchuitang0642
douchuitang0642 尝试了,但它给了我这个错误“VM979:2未捕获的SyntaxError:意外的令牌<在位置1的JSON中”
接近 3 年之前 回复



将输出解析为json,另外,因为e.connection是一个数组,
</ a > </ p>

如果你想从连接获得标题,你可以这样做</ p>

  e = JSON.parse(e)
console.log (e.connections [0] .title)
</ code> </ pre>
</ div>

展开原文

原文

parse output to json, plus, because e.connection was an array, enter image description here

if you want to get title from connection you can do like

e = JSON.parse(e)
console.log(e.connections[0].title)

douqiao3453
douqiao3453 尝试过,但它给了我一个错误“Uncaught TypeError:无法读取未定义的属性'标题'”
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐