JavaScript JSON 数据问题 - 警报未在每个循环中显示
JavaScript JSON data issue - alert not showing in each loop
我遇到一些 javascript 代码的问题。
我没有收到每个循环区域后的数据警报。
完整代码如下:
var widget = {
url: 'the url here', //no used yet
readjson: function() {
alert(this.url);
var thedata = [
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
];
alert(thedata); //I get this
$.getJSON(thedata, function(data) {
$.each(data, function(index) {
alert(data[index].TEST1); //No alert here
alert(data[index].TEST2); //No alert here
});
});
}
};
widget.readjson();
[通过 URL 电话:]
JSON 字符串的代码与下面相同,但用 AJAX 调用换行:
$.getJSON('http://exemple.com/data.json' , function(data) {
$.each(data, function() {
alert(this.TEST1);
alert(this.TEST2);
});
});
[带有 JSON 刺痛:]
var widget = {
readjson: function() {
var stringJsonData = '[{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}]';
alert(stringJsonData);
data = $.parseJSON(stringJsonData);
$.each(data, function() {
alert(this.TEST1);
alert(this.TEST2);
});
}
};
widget.readjson();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
这是一个 JSON 字符串,您可以使用 $.parseJSON()
进行解析:
var thedata = '[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]';
主要问题是您尝试使用 AJAX 调用 ($.getJSON()
),将 URL 字符串作为第一个参数,并使用手工制作的 json对象事物...
现在,您只是一个 JS 对象数组,您可以像这样处理:
var widget = {
read: function() {
var thedata = [{"TEST1": 45,"TEST2": 23,"TEST3": "DATA1"},{"TEST1": 46,"TEST2": 24,"TEST3": "DATA2"},{"TEST1": 47,"TEST2": 25,"TEST3": "DATA3"}];
alert(thedata); //I get this
$.each(thedata, function(index) {
alert(this.TEST1); //No alert here
alert(this.TEST2); //No alert here
});
}
};
widget.read();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我遇到一些 javascript 代码的问题。
我没有收到每个循环区域后的数据警报。
完整代码如下:
var widget = {
url: 'the url here', //no used yet
readjson: function() {
alert(this.url);
var thedata = [
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
];
alert(thedata); //I get this
$.getJSON(thedata, function(data) {
$.each(data, function(index) {
alert(data[index].TEST1); //No alert here
alert(data[index].TEST2); //No alert here
});
});
}
};
widget.readjson();
[通过 URL 电话:] JSON 字符串的代码与下面相同,但用 AJAX 调用换行:
$.getJSON('http://exemple.com/data.json' , function(data) {
$.each(data, function() {
alert(this.TEST1);
alert(this.TEST2);
});
});
[带有 JSON 刺痛:]
var widget = {
readjson: function() {
var stringJsonData = '[{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}]';
alert(stringJsonData);
data = $.parseJSON(stringJsonData);
$.each(data, function() {
alert(this.TEST1);
alert(this.TEST2);
});
}
};
widget.readjson();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
这是一个 JSON 字符串,您可以使用 $.parseJSON()
进行解析:
var thedata = '[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]';
主要问题是您尝试使用 AJAX 调用 ($.getJSON()
),将 URL 字符串作为第一个参数,并使用手工制作的 json对象事物...
现在,您只是一个 JS 对象数组,您可以像这样处理:
var widget = {
read: function() {
var thedata = [{"TEST1": 45,"TEST2": 23,"TEST3": "DATA1"},{"TEST1": 46,"TEST2": 24,"TEST3": "DATA2"},{"TEST1": 47,"TEST2": 25,"TEST3": "DATA3"}];
alert(thedata); //I get this
$.each(thedata, function(index) {
alert(this.TEST1); //No alert here
alert(this.TEST2); //No alert here
});
}
};
widget.read();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>