如何在 $.ajax 响应中从 JSON 中提取数组

Posted

技术标签:

【中文标题】如何在 $.ajax 响应中从 JSON 中提取数组【英文标题】:How to extract Array from JSON in $.ajax response 【发布时间】:2013-09-12 09:05:30 【问题描述】:

我有一个从 ajax 响应中的数组转换而来的 json 值。

"Text":"Please provide a value","Email":"Please provide a value"

我需要使用 $(div).html() 将响应 json 提取到 div 中:

Text-Please provide a value
Email-Please provide a value

我用 $.each() 试过了:

var json=JSON.stringify("Text":"Please provide a value","Email":"Please provide a value");
    var arr = [];
    var obj = jQuery.parseJSON(json);
    $.each(json,function(key,value)
    
     arr.push('<li>'+value+'</li>');
    );
    var arrval =arr.join('');
    console.log(arrval);

但我得到的输出是未定义的。我知道我在提取时犯了一些逻辑错误?我在这里做错了什么??

注意:json中的数组键值对可以是动态的,也可以是一个、两个或多个..

【问题讨论】:

您正在迭代原始字符串。你应该写$.each(obj, ...) 而不是$.each(json, ...) @FrédéricHamidi 感谢您提供正确的方法。你的建议奏效了…… 【参考方案1】:

我认为这可能会有所帮助

var  json = "Text":"Please provide a value","Email":"Please provide a value";
var arr = [];
$.each(json,function(key,value)
    arr.push('<li>'+value+'</li>');
);
var arrval =arr.join('');
console.log(arrval);

【讨论】:

我认为在 json 上调用 $.parseJSON()(json 到对象转换)然后在结果上调用 $.makeArray()(对象到数组转换)会得到我想要的数组,但是我的$.parseJSON() 结果为空。有什么指点吗?【参考方案2】:

如果有帮助就看看这个!!

var jsonData = "Text":"Please provide a value","Email":"Please provide a value";
var arr = [];
for(var j in jsonData)
    var sub_key = j;
    var sub_val = eval("jsonData."+j);
    arr.push('<li>'+sub_key+": "+sub_val+'</li>');    

【讨论】:

【参考方案3】:
$(obj).each(function(index,value)

  arr.push('<li>'+value.Text+'</li>');
);

你的 json 必须看起来像:

["Text":"Please provide a value","Email":"Please provide a value"]

【讨论】:

【参考方案4】:

json 是一个对象数组,因此有一个可以用来迭代其元素的长度属性。

var result;

for(var i=0;i<json.data.length;i++)

      result += json.data[i].text+ ', ';

大多数调试器控制台都支持直接显示对象。只需使用

检查您的结果
console.log(obj);

【讨论】:

这与问题的匹配程度如何?请修改以改进。

以上是关于如何在 $.ajax 响应中从 JSON 中提取数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中从 JSON 中提取图像链接 - 正则表达式

如何在 Javascript 中从 Spring 获取 JSON 响应

在没有任何插件的情况下,在chrome dev工具中从POST请求中提取请求主体的最简单方法

如何在 C# Rest 服务中从 Android 应用程序读取 JSON 数据

如何在Vapor 3中从JSON响应中保存父子关系

如何在 Spring Boot 中解决“提取类型 [class com.*] 的响应时出错”?