Javascript 从jQuery中的字符串中提取JSON

Javascript 从jQuery中的字符串中提取JSON,javascript,jquery,json,Javascript,Jquery,Json,//AJAX区域 $(函数(){ $.ajax({ 键入:“GET”, 网址:'https://jsonplaceholder.typicode.com/posts/1', 成功:功能(数据){ console.log('success\n',data); }, 错误:函数(数据){ console.log('错误',数据); } }); });//AJAX区域 观察1:不必要的解析 无需调用parseJSON。 使用的dataType属性直接以JSON格式加载数据: $.ajax({

//AJAX区域
$(函数(){
$.ajax({
键入:“GET”,
网址:'https://jsonplaceholder.typicode.com/posts/1',
成功:功能(数据){
console.log('success\n',data);
},
错误:函数(数据){
console.log('错误',数据);
}
});
});//AJAX区域
观察1:不必要的解析 无需调用
parseJSON
。 使用的
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);
    }
});
观察2:错误的JSON 上面的代码仍然会抛出相同的错误,因为

意外标记

它指的是对象及其子对象的所有最后一个元素后面的逗号。删除那个逗号,就不会再有错误了

例如:

"State1" : {
    "City 1",
    "City 2",
    "City 3",
}
“城市3”
后面不应该有逗号。其他州也是如此,整个
“country2”
对象也是如此

还有另一个错误:您的States对象是数组,但您正在将其作为对象写入。将
“State1”
“State2”
的方括号更改为方括号观察1:不必要的语法分析 无需调用
parseJSON
。 使用的
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);
    }
});
观察2:错误的JSON 上面的代码仍然会抛出相同的错误,因为

意外标记

它指的是对象及其子对象的所有最后一个元素后面的逗号。删除那个逗号,就不会再有错误了

例如:

"State1" : {
    "City 1",
    "City 2",
    "City 3",
}
“城市3”
后面不应该有逗号。其他州也是如此,整个
“country2”
对象也是如此


还有另一个错误:您的States对象是数组,但您正在将其作为对象写入。将
“State1”
“State2”
的方括号更改为方括号。您返回的json对象是无效的json,对于状态对象,您需要将其设置为数组。因此:

“州1”:[“市1”、“市2”、“市3”]


当解析器解析此对象时,它希望每个城市都有一个第二个值,如“City1”:“第二个值”……因为没有第二个值将其破坏。

您返回的json对象是无效的json,对于状态对象,您需要将其设置为数组。因此:

“州1”:[“市1”、“市2”、“市3”]


当解析器解析这个对象时,它希望每个城市都有一个第二个值,比如“City1”:“second value”……因为没有第二个值会破坏它。

你能在帖子中添加实际的JSON而不是屏幕截图吗。也就是说,屏幕截图似乎不是有效的JSON。状态1、2中的“对象”。。。n是残疾人。可能后端应该以数组而不是对象的形式返回。您的
json.php
返回无效的json,您是如何生成它的?您应该简单地使用
json_encode
PHP函数,如果您想在回显它之前正确地使用
header('Content-type:application/json')将头设置为json。JSON存在多个问题。所有属性名称也应该用双引号括起来,例如请从region.php添加代码。问题似乎就在那里。您是否可以将实际的JSON添加到帖子中而不是屏幕截图中。也就是说,屏幕截图似乎不是有效的JSON。“对象”“在国家1、2内。。。n是残疾人。可能后端应该以数组而不是对象的形式返回。您的
json.php
返回无效的json,您是如何生成它的?您应该简单地使用
json_encode
PHP函数,如果您想在回显它之前正确地使用
header('Content-type:application/json')将头设置为json。JSON存在多个问题。所有财产名称也应该用双引号括起来,例如请添加region.php中的代码。问题似乎就在这里。{“国家1”:{“国家1”:[“城市1”、“城市2”、“城市3”],“国家2”:[“城市1”、“城市2”、“城市3”],},“国家2”:{“国家1”:[“城市1”、“城市2”、“城市3”],“国家2”:[“城市1”,”这是最后一部分,删除那些逗号。{“国家1”:{“国家1”:[“城市1”,“城市2”,“城市3”],“国家2”],“国家2”:{“国家1”:[“城市1”,“城市2”,“城市3”],},“国家2”:{“国家1”:[“城市1”,“城市2”,“城市3”],“国家2”:[“城市1”,“城市2”,“城市3”],}但仍然错误],},}这是最后一部分,删除那些逗号。