2012-05-25 39 views
9

一个字符串我怀疑这是一个简单的问题,但我是一个有点新的JS和无法找到解决方案。JSON字符串被视为在环

基本上,当我通过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 

我理解返回值的问题;这是对数组进行处理,就像我不明白的字符串。谢谢!

回答

11

这是因为你没有通过一个对象循环;您正在循环一个字符串并获取每个字母。

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

var myObject = JSON.parse(myJsonString); 
var codesLongText = build_codes_long(myObject); 
+0

这做到了。谢谢! –