0

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

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

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

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中的数组键值对可以是动态的,也可以是一个、两个或多个。

4

4 回答 4

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);
于 2013-09-12T10:27:27.693 回答
1

看看这个是否有帮助!

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>');    
}
于 2013-09-12T09:11:08.880 回答
0

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

var result;

for(var i=0;i<json.data.length;i++)
{
      result += json.data[i].text+ ', ';
}

大多数调试器控制台支持直接显示对象。只需使用检查您的结果

console.log(obj);
于 2013-09-12T10:22:27.290 回答
0
$(obj).each(function(index,value)
{
  arr.push('<li>'+value.Text+'</li>');
});

你的 json 必须看起来像:

[{"Text":"Please provide a value","Email":"Please provide a value"}]
于 2013-09-12T09:09:25.397 回答