JSON到数组反应,jquery

Posted

技术标签:

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

我从我的服务器获得了 json 数据,我想放入一个列表,我已经阅读 Convert JSON To Array javascript 和Converting 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]; 【参考方案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 中表示的数据结构的一部分。

【讨论】:

以上是关于JSON到数组反应,jquery的主要内容,如果未能解决你的问题,请参考以下文章

将值数组修补到反应形式

Node.js 速递 | JQuery 获取 JSON 时,客户端没有任何反应

在反应中导入json文件,webpack配置错误

如何在反应中推送 JSON 对象数组中的项目?

使用 JSON 数据输出数组数组而不是一个数组来反应 useState Hooks

在反应中使用递归函数从平面数组创建 JSX 树