所以我使用jQuery从一个网站解析JSON(具有以下内容):
{
"code": 200,
"msg": "OK",
"data": {
"zone": "EXAMPLE",
"date": "21 Dec 2017",
"item": {
"name": "John Doe",
"age": 53
}
}
}
并使用该JSON中的对象来更改HTML内容:
$.getJSON('https://api.example.com/', function(data) {
document.getElementById('firstObject').innerHTML = data.data.item.name;
document.getElementById('secondObject').innerHTML = data.data.item.age;
不幸的是,它不会起作用。所以,我尝试使用其他网站(其内容与以前相同,但没有空格):
{"code":200,"msg":"OK","data":{"zone":"EXAMPLE","date":"21 Dec 2017","item":{"name":"Ben Herton","age":24}}}
并使用该JSON中的对象来更改HTML内容:
$.getJSON('https://api.secondExample.com/', function(data) {
document.getElementById('firstObject').innerHTML = data.data.item.name;
document.getElementById('secondObject').innerHTML = data.data.item.age;
它有效。但是,遗憾的是我想在我的项目中使用第一个网站。也许任何人都可以帮助我。提前谢谢。
答案 0 :(得分:0)
很可能是换行,而不是造成问题的空白。
一种选择是将数据作为字符串获取,然后手动解析。将数据作为字符串返回使您也有机会解析其他问题。所以下面的JSON.parse
只是一个选项
$.ajax({url: 'https://api.example.com/',
dataType: 'string'}).done(function(dataStr) {
var cleaned = dataStr.replace(/\n/g,' ');
// other cleaning can be done prior to parsing too
var data = JSON.parse(cleaned);
document.getElementById('firstObject').innerHTML = data.name;
document.getElementById('secondObject').innerHTML = data.age;
}
答案 1 :(得分:0)
对我有用
var d = {
"code": 200,
"msg": "OK",
"data": {
"zone": "EXAMPLE",
"date": "21 Dec 2017",
"item": {
"name": "John Doe",
"age": 53
}
}
};
$(document).ready(function() {
document.getElementById('firstObject').innerHTML = d.data.item.name;
document.getElementById('secondObject').innerHTML = d.data.item.age;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="firstObject">
</div>
<div id="secondObject">
</div>