【问题标题】:JSON to Array react, jqueryJSON到数组反应,jquery
【发布时间】:2015-10-26 06:15:29
【问题描述】:

我从我的服务器获得了 json 数据,我想放入一个列表,我已经阅读 Convert JSON To Array JavascriptConverting data from JSON to JavaScript array 但我无法弄清楚我可以在我的代码中使用哪些选项我的 json 是这样的:

{"response": {"user": [{"username": "", "description": "", "picture_url": "", "name": "", "phone": ""} ]}, "成功": true}

我想把它放在这样的数组中:

[{用户名:“”,描述:“”,图片网址:“”,姓名:“”,电话:“”}]

我能做些什么呢?我已经尝试过这个答案:Converting JSON Object into Javascript array

我也尝试了一些这样的功能:

$.each(data, function(i,obj){
                $(arr).append(obj.username+'</br>');
                $(arr).append(obj.description+'</br>');
                $(arr).append(obj.name+'</br>');
            });

还有这个:

var results = data;
            var arr = [], item;
            for (var i = 0, len = results.length; i < len; i++) {
                item = results[i];
                arr.push({username: item.username, description: item.description, name: item.name});
            }

但是对于第二个不显示任何内容并且不显示任何错误,对于第一个,显示一个未定义的错误 arr 未定义。

【问题讨论】:

  • 发布你的服务器端脚本
  • 您还需要什么? var user = JSON.parse(responseJson).response.user; var putItInAnArrayLikeThis = [user];

标签: javascript jquery arrays json reactjs


【解决方案1】:

在您的服务器端脚本中,将转换为 json 的数组应如下所示:

$array=array("response"=>array(
                                   "user"=>array(array("username"=>"",
                                                       "description"=>"",
                                                       "picture_url"=>"",
                                                       "name"=>"",
                                                       "phone"=>"")),
                                   "success"=>true
                              )
             );
echo json_encode($array);

我认为在您的服务器端,“用户”数组格式看起来像

"user"=>array("username"=>"",
              "description"=>"",
              "picture_url"=>"",
              "name"=>"",
              "phone"=>"")

而不是那个,“用户”数组应该是嵌套的,就像我的第一个例子一样。

"user"=>array(array("username"=>"",
                    "description"=>"",
                    "picture_url"=>"",
                    "name"=>"",
                    "phone"=>""))

使用 javascript 转换为 json 后,输出将是:

用户:[{用户名:“”,描述:“”,图片网址:“”,姓名:“”,电话:“”}]

【讨论】:

  • 我无法修改服务器端脚本
【解决方案2】:

假设你的 JSON 是这样发布的:

{"response": {"user": [{"username": "", "description": "", "picture_url": "", "name": "", "phone": ""}]}, "success": true}

您已经在.response.user 获得了所需的确切数据结构。

所以代码会很简单:

var json = '{"response": {"user": [{"username": "", "description": "", "picture_url": "", "name": "", "phone": ""}]}, "success": true}';
var obj = JSON.parse(json);
var theArrayYouWant = obj.response.user;

这根本不需要任何转换(除了反序列化 JSON 字符串),您只是提取了 JSON 中表示的数据结构的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多