我是 JSON/Javascript 新手,遇到了这种性质的问题。
在我的 php 脚本中,我将 php 数组传递给 javascript,如下所示:
echo '<img id="Next" src="misc/arrow_right.png" onclick="imageSlider(' . json_encode($images) . ')" >';
在我的 JavaScript 中:
function imageSlider(imagesArray) {
alert(imagesArray);
}
上面的警报打印了表单对象 Object 的输出
问题是我不知道如何最好地“分解”或分解这个对象,以便我可以提取我最初 json_encoded 的数据。原始数组的结构是一个带有字符串的简单数字索引数组,即["image1", "image2",...]
etc
我也尝试过alert(JSON.stringify(imagesArray))
我得到这个字符串:
{“1”:“images1.jpg”,“2”:“images2.jpg”,“3”:“images3.jpg”,“4”:“images4.jpg”,“5”:“images5.jpg” }
不管怎样,我不知道如何最好地在 javascript 中获取我的图像名称和数组索引。例如
从对象中提取 1 和 images1.jpg 或者是否有办法将“字符串化”对象转换为真正的 javascipt 数组...?
谢谢
你可以使用著名的json2.js https://github.com/douglascrockford/JSON-js将 json 字符串解析为 Javascript 中的对象。包含 json2.js 后,您可以使用:
imageArray = JSON.parse(encodedJson);
但我认为在你的例子中,如果你有一个 json 编码的对象,它已经是一个真正的 javascript 对象。您可以使用
console.log(imageArray);
查看 imageArray 的内容。您可以访问对象的属性,例如:
alert(imageArray[1]) //this will alert "image1.jpg"
但我想让你知道 imageArray 不是一个数组,它是一个 javascript 对象。如果键是数字(如您的示例中所示),则无法使用点表示法来访问 javascript 对象的值。所以你不能使用图像数组.1要到达“image1.jpg”,如果您的键是类似于上面代码的数字,则应该使用方括号。如果您想使用点表示法,则应该将键设为字符串,例如:
imageArray = { "i1": "image1.jpg", "i2": "image2.jpg" } //this way you can use imageArray.i1 to get "image1.jpg"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)