如何从外部文件JSON创建JAVASCRIPT数组
How to create JAVASCRIPT ARRAY from external file JSON
从json文件创建javascript数组的最佳方法是什么?我有四个空的JavaScript数组,我想用从json文件导入的数据填充它们。
var firstname = new Array();
var address= new Array();
var city = new Array();
File Json: " File . Json "
[
{"name ": "John", "address": "350 Fifth Avenue", "city ": "New York"},
{"name ": "Mark", "address": "1101 Arch St", "city ": "Philadelphia"},
{"name ": "Jack", "address": "60th Street", "city ": "Chicago"}
]
我试一试:
$.getJSON('file.json',function (data) {
for (var i = 0; i < data.length; i++) {
firstname.push.apply( firstname, data[i].firstname );
address.push.apply( address, data[i].address );
city.push.apply( city, data[i].city );
}
});
,但数组仍然为空。提前感谢
================================ 解决了 ===============================
$.ajax({
async: false,
url: 'file.json',
data: "",
accepts:'application/json',
dataType: 'json',
success: function (data) {
for (var i = 0; i < data.length; i++) {
firstname.push( data[i].firstname );
address.push( data[i].address );
city.push( data[i].city );
}
}
})
// Get arrays outside callback function
console.log('result: '+firstname.length); // result: 3
你似乎把顺序搞错了,data
是数组所以它不是
data.name[i]
,
data[i].name
和除去奇怪的apply
,它将是
$.getJSON('json.js',function (data) {
for (var i = 0; i < data.length; i++) {
name.push( data[i].name );
address.push( data[i].address );
city.push( data[i].city );
}
});
还请注意,name
是全局上下文中变量名的坏选择。
你有两三个问题。
您的JSON无效。
去掉外部的引号
认真考虑给予是一个.json
文件扩展名,那么你更有可能得到正确的JSON MIME类型。(JSON数据文件不是JavaScript程序)。
File: "data.json"
[
{"name ": "John", "address": "350 Fifth Avenue", "city ": "New York"},
{"name ": "Mark", "address": "1101 Arch St", "city ": "Philadelphia"},
{"name ": "Jack", "address": "60th Street", "city ": "Chicago"}
]
你访问数据的顺序不对
这太复杂了,并且以错误的顺序访问属性。
name.push.apply(name, data.name[i]);
忘记使用apply
。你不需要它。
然后注意JSON数组包含对象,而不是其他方式。您需要访问属性名称之前的数组索引:
name.push(data[i].name);
还记得Ajax中的A吗
最后-你的代码没有显示你是如何测试结果的。记住,Ajax是异步的,所以如果您在回调函数之外检查数组的值,它们可能还没有被填充。
相关文章:
- 使用Web Html表单创建Javascript数组
- 使用私有成员创建JavaScript类
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- Mediawiki皮肤创建-Javascript don'Don’t get load
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 为表菜单创建javascript
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 从字符串创建 JavaScript 函数
- 使用计算名称创建 JavaScript 对象
- 什么是创建 JavaScript 类的适当、现代和跨浏览器安全的方法
- 创建 JavaScript 构造函数时的语法错误
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- php在foreach循环中创建javascript
- 创建javascript模块
- 如何从数组中动态创建javascript变量
- 创建JavaScript库:更改实际图像
- 如何创建javascript执行器,使元素在selenium webdriver中可见
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 创建javascript子类型的实例会产生意外行为
- 如何创建javascript顺序动画