dongxuxian1123
dongxuxian1123
2017-12-20 04:51

JSON响应返回undefined

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?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongni8969 dongni8969 4年前

    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 ...
      });
    });
    
    点赞 评论 复制链接分享
  • dongyiyu3953 dongyiyu3953 4年前

    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)
    
    点赞 评论 复制链接分享