http://localhost/project1/index.php
//AJAX region
$(function(){
$.ajax({
type : 'GET',
url : 'https://jsonplaceholder.typicode.com/posts/1',
success : function(data){
console.log('success \n', data);
},
error : function(data){
console.log('error', data);
}
});
});//AJAX region
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
可以轻松地从http://localhost/project1/json.php加载数据 安慰:
数据是字符串,如果我使用$ .parseJSON(数据)或JSON.parse(数据)我得到以下错误...
我希望数据作为实时JSON对象,以便我可以访问每个属性和&amp;值。
答案 0 :(得分:2)
无需致电parseJSON
。
使用$.ajax
的dataType
属性直接以JSON格式加载数据:
$.ajax({
type : 'GET',
dataType: 'json', // here
url : 'http://localhost/project1/region.php',
success : function(data) {
// data is already a JS object :)
console.log('success \n', data);
},
error : function(data){
console.log('error', data);
}
});
由于
,上面的代码仍然会抛出相同的错误意外令牌,
它指的是对象及其子对象的所有最后一个元素后面的尾随逗号。删除该逗号,不会再出现错误。
例如:
"State1" : {
"City 1",
"City 2",
"City 3",
}
"City 3"
之后不应该有逗号。其他状态也是如此,整个"country2"
对象也是如此。
还有另一个错误:您的States对象是数组,但您正在编写对象。将卷曲括号更改为"State1"
和"State2"
的方括号。
答案 1 :(得分:1)
您返回的json对象是无效的json,对于状态对象,您需要使它们成为数组。这样:
&#34;状态1&#34;:[&#34; City1&#34;&#34;城2&#34;&#34;请分享帮助&#34;]
当解析器解析此对象时,它期望每个城市的第二个值,例如&#34; City1&#34;:&#34; Second Value&#34; ...因为没有第二个值,它会破坏。