仅通过对象进行迭代

时间:2014-09-05 15:57:10

标签: php jquery json

我正在从PHP接收一些JSON(在Firefox工具中预览):

1:Object
  0:Object
  1:Object
  2:Object
  3:Object
  Name: "SomeName"

我现在想要遍历对象,而不是Name键。似乎我做了$ .each它包含键/值对。我怎么能避免呢?另外,为什么我可以为第一个对象选择一个数值(我有它" 1")但是没有给它赋值?我希望它看起来像这样的例子

1:SomeNameIGaveIt
  0:Object
  1:Object
  2:Object
  3:Object

这会使我的名字k / v对过时。

JSON

{"1": {"Name":"SomeName", "0":{"data":"data"}. "1":{"data":"data"}}}

1 个答案:

答案 0 :(得分:0)

在JavaScript中,String是Object的“子类”。幸运的是,有类型的运营商;

Chrome控制台中的

var a = "foo" //makes a String
var b = {}    //makes an empty Object
typeof a
"string"
typeof b
"object"

使用此功能,您可以检查以确保在对其执行操作之前某些字符串不是字符串。

其他选项:您可以通过JavaScript for循环迭代它,而不是使用json $ .each调用进行迭代。如果您知道SomeNameIGaveIt对象中的元素数量是固定的,您可以使用固定数量的迭代然后使用数组索引运算符(SomeNameIGaveIt [index]),或使用for-in循环(for(var i in array) ){...})

如果使用for-in循环,则可以使用typeof检查索引是否为数字,如上所述。任何这些方法都会产生非常相似的结果,所以选择最适合你的方法。