将.json文件中的项分配给javascript中的变量
我有一个将.json文件中的项分配给javascript中的变量,javascript,ajax,json,html,Javascript,Ajax,Json,Html,我有一个data1.json文件 [ { “投标书”:“4569749”, }, { “投标书”:“466759”, }, { “投标书”:“456149”, }, ] 我想在另一个abdv.js文件中调用这个.json文件,并将出价分配给一个变量数组 var R1; i、 eR1=['4569749','466759','4561149']的值 我该怎么做 .html文件(请注意:我只指定与此任务相关的部分,并删除了其他部分) 代码如下: loadABCD(); abvd.j
data1.json
文件
[
{
“投标书”:“4569749”,
},
{
“投标书”:“466759”,
},
{
“投标书”:“456149”,
},
]
我想在另一个abdv.js
文件中调用这个.json文件,并将出价分配给一个变量数组
var R1;
i、 eR1=['4569749','466759','4561149']的值
我该怎么做
.html文件(请注意:我只指定与此任务相关的部分,并删除了其他部分)
代码如下:
loadABCD();
abvd.js
代码如下:
function loadABCD()
{
var R1 = [];
$.get('data1.json', function (data) {
var parsedArr = JSON.parse(data),
i = 0, l = parsedArr.length;
for (i; i < l; i++) {
R1.push(parsedArr[i].BID);
}
});
for(k=0;k<R1.length;k++)
{
document.write(R1);
}
// i will use R1 for later processing another function
// for(k=0; k<R1.length; k++)
// {
// obj = loadLevel4Obj(R1[k]);
// scene.add(obj);
// }
}
函数加载abcd()
{
var R1=[];
$.get('data1.json',函数(数据){
var parsedArr=JSON.parse(数据),
i=0,l=parsedArr.length;
对于(i;i 对于(k=0;k假设您已将json文件读入javascript json对象(您也需要帮助吗?)
然后需要对其进行修复,以删除对象中的多余逗号。它应该如下所示:
$.get('data1.json', function (data) {
var parsedArr = JSON.parse(data),
for (i = 0; i < parsedArr.length; i++) {
R1.push(parsedArr[i].BID);
}
for(i=0; i< R1.length; i++)
console.log("item " + i + " = " + R1[i]);
});
[ { "BID" : "4569749", }, { "BID" : "466759", }, { "BID" : "4561149", }, ]
[ { "BID" : "4569749" }, { "BID" : "466759" }, { "BID" : "4561149" } ]
我还没有测试过这个,但它看起来应该对我有用。使用ajax获取json文件,然后处理它并分配给R1:
function ajaxGetJson(url, callback){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(eval(xmlhttp.responseText));
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
var R1;
ajaxGetJson('file.json', function(obj){
R1 = obj.map(function(item){ return item.BID });
});
一些评论:
- 我使用的是
eval
而不是JSON.parse
,因为您的.JSON可能不是严格的JSON格式(如您的示例所示)
- 由于问题带有标签
html5
,您的浏览器肯定支持.map
方法
干杯,来自玻利维亚拉巴斯var R1=[];
var R1 = [];
$.get('file.json', function (data) {
var parsedArr = JSON.parse(data),
i = 0, l = parsedArr.length;
for (i; i < l; i++) {
R1.push(parsedArr[i].BID);
}
});
$.get('file.json',函数(数据){
var parsedArr=JSON.parse(数据),
i=0,l=parsedArr.length;
对于(i;i
for..in
循环抛出数组?您将在此循环中获得数组中的所有共享属性。prototype
。我无法使其工作:我将更具体地说明我的问题您做错了一堆小事情…我将编辑我的答案。OP未提及jQuery…请编辑您的答案以删除所述引用。@Pin为什么?他的Json文件不是严格的Json格式,所以使用Json.parse
会导致解析错误。如果像本例中那样明智地使用Eval,则可以使用Eval。
function ajaxGetJson(url, callback){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(eval(xmlhttp.responseText));
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
var R1;
ajaxGetJson('file.json', function(obj){
R1 = obj.map(function(item){ return item.BID });
});
var R1 = [];
$.get('file.json', function (data) {
var parsedArr = JSON.parse(data),
i = 0, l = parsedArr.length;
for (i; i < l; i++) {
R1.push(parsedArr[i].BID);
}
});