我正在开发一个简单的JavaScript(jQuery)幻灯片放映。我想使用JSON存储一些关于每张幻灯片内容的静态参数。
由于我喜欢将我的数据与我的代码分开,所以有没有让JavaScript评估.json文件?
所以在我使用上述解决方案之前,我只是想确保没有更简洁的方法让JavaScript评估文本文件。
答案 0 :(得分:8)
为对象设置单独的js文件有什么问题?它必须住在某个地方。我同意ajax是矫枉过正的,但我不知道为什么你认为.js文件中的JavaScript对象“混乱”。
答案 1 :(得分:4)
评估JSON非常简单:
var jsonString = "{'name': 'Joe', 'age': 36}";
var data = eval('(' + jsonString + ')');
data.name // 'Joe'
data.age // 36
存储此数据的最简单方法是将其放在<input type="hidden">
中,然后使用document.getElementById('hiddenElementId').value
进行阅读。
完整图片:
<强> HTML 强>
<input type="hidden" id="hiddenElementId" value="{'name': 'Joe', 'age': 36}" />
<强> JS 强>
function getData() {
var jsonString = document.getElementById('hiddenElementId').value;
var data = var data = eval('(' + jsonString + ')');
return data;
}
实际上不必是hidden
元素 - 您可以将其放在其中一个图像的属性中。
另一种选择是将其粘贴到某个名称下的<script>
标记中。
<script type="text/javascript">
var data = {'name': 'Joe', 'age': 36};
</script>
这种方式data
成为一个全局变量(我不喜欢这样的东西),可以在任何地方使用。这是一个简单的解决方案,但有点凌乱 - 我会选择第一个。
答案 2 :(得分:1)
J-Query有一个解析JSON函数,甚至可以在IE中运行..
$.parseJSON("{'json':'rules for data'}");
享受..
但只是一个如何让它整洁的问题:
FUNCTION_HOWTO({json:'test',p2:'part2'}) = {
json:'test',
p2:'part two'
}