9

我怀疑这是一个简单的问题,但我对 js 有点陌生,找不到解决方案。

基本上,当我将 JSON 字符串传递给函数然后尝试遍历传递的变量时,它会将其视为文字字符串而不是数组。

使用此功能:

function build_codes_long(codes) {
   var codes_long_text = "";
   for(var i =0;i < codes.length-1;i++) {
      var code = codes[i];
      codes_long_text += "<p>" + code['id'] + " = " + code['del'] + "</p>";
   }
return codes_long_text; 
}

当我将 JSON 字符串传递给它时,如下所示:

[{"id":"1","del":"0","clip":"1"},{"id":"2","del":"0","clip":"1"}]

它评估字符串中的每个字符,而不是数组中的每个项目。所以它循环 65 次而不是 2 次,返回类似:

undefined = undefined

我了解返回值的问题;这是将数组视为我不理解的文字字符串。谢谢!

4

1 回答 1

11

这是因为你没有循环遍历一个对象;你正在循环一个字符串并得到每个字母。

您需要先将 JSON 字符串转换为对象:

var myObject = JSON.parse(myJsonString);
var codesLongText = build_codes_long(myObject);
于 2012-05-25T18:00:53.617 回答