Chr*_*ris 5 javascript php arrays json object
我有一个PHP数组并使用json编码将其回显到javascript中,我需要这样做,因为它会非常动态.这是它回应的代码:
{"notempty":true}
Run Code Online (Sandbox Code Playgroud)
我使用它,将其转换为javascript:
var myarray = eval('(' + json + ')');
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它创建了一个对象而不是一个数组,因此我不能使用.length或for循环.
有人知道我在这里做错了什么吗?
谢谢
你试图把一个Object像一个Array,一个Object不是一个Array,它是一个Object.
每当你{}在JSON中看到,这意味着"这些神圣的括号中包含的内容是动态对象".当你看到[],这意味着"看哪!我是一个数组"(这个有一些明显的例外:jQuery做了一些特别的工作,使自己看起来像一个数组).
所以,为了迭代Object,你会想要使用for... in.
// eval BAD unless you know your input has been sanitized!.
var myObj = JSON.parse('{"notempty":true}');
// personally, I use it in for... in loops. It clarifies that this is a string
// you may want to use hasOwnProperty here as sometimes other "keys" are inserted
for( var it in myObj ) console.log( "myObj["+it+"] = " + myObj[it] );
Run Code Online (Sandbox Code Playgroud)