Javascript JSON.parse返回错误
这是我的JSON.stringify在我尝试运行JSON.parse之前返回的Javascript JSON.parse返回错误,javascript,json,angular,typescript,Javascript,Json,Angular,Typescript,这是我的JSON.stringify在我尝试运行JSON.parse之前返回的 {"id":"2","name":"<small>L</small>(+)-Amethopterin Hydrate","class":"6.1","subclass":"","packing_group":"III","un":"2811","cas":"133073-73-1","poisons":"","hazardous":"Yes","restricted":"No","epa":"
{"id":"2","name":"<small>L</small>(+)-Amethopterin Hydrate","class":"6.1","subclass":"","packing_group":"III","un":"2811","cas":"133073-73-1","poisons":"","hazardous":"Yes","restricted":"No","epa":"","added_by":"0","carcinogen":null},
{"id":"3","name":"(+)-Biotin 4-Nitrophenyl ester","class":"","subclass":"","packing_group":"","un":"","cas":"33755-53-2","poisons":"","hazardous":"No","restricted":"No","epa":"","added_by":"0","carcinogen":null},
{"id":"4","name":"(+)-Biotin N-hydroxysuccinimide ester","class":"","subclass":"","packing_group":"","un":"","cas":"35013-72-0","poisons":"","hazardous":"No","restricted":"No","epa":"","added_by":"0","carcinogen":null}
this.searchService.searchJson(this.php\u url)
基本上就是我的JSON字符串。给出如上所述的错误
JSON.parse(this.searchService.searchJson(this.php_url));
另外,如果我只是尝试对3个元素中的1个进行字符串化,它将在位置0处提供JSON中意外的标记u
调用函数:
searchJson(url: any): any
{
let items: any = [];
let new_data: any = [];
$.getJSON(url ,
function(data)
{
let temp_items: any = {};
console.log(data);
$.each(data, function (key, val)
{
new_data.push(JSON.stringify(val));
});
});
return new_data;
}
您必须用
[]
来包装它,因为这是一个对象数组:
const data = [{"id":"2","name":"<small>L</small>(+)-Amethopterin Hydrate","class":"6.1","subclass":"","packing_group":"III","un":"2811","cas":"133073-73-1","poisons":"","hazardous":"Yes","restricted":"No","epa":"","added_by":"0","carcinogen":null}, {"id":"3","name":"(+)-Biotin 4-Nitrophenyl ester","class":"","subclass":"","packing_group":"","un":"","cas":"33755-53-2","poisons":"","hazardous":"No","restricted":"No","epa":"","added_by":"0","carcinogen":null}, {"id":"4","name":"(+)-Biotin N-hydroxysuccinimide ester","class":"","subclass":"","packing_group":"","un":"","cas":"35013-72-0","poisons":"","hazardous":"No","restricted":"No","epa":"","added_by":"0","carcinogen":null}]
JSON.parse(data)
也将返回[Object,Object,Object]
您必须用[]
包装它,因为这是一个对象数组:
const data = [{"id":"2","name":"<small>L</small>(+)-Amethopterin Hydrate","class":"6.1","subclass":"","packing_group":"III","un":"2811","cas":"133073-73-1","poisons":"","hazardous":"Yes","restricted":"No","epa":"","added_by":"0","carcinogen":null}, {"id":"3","name":"(+)-Biotin 4-Nitrophenyl ester","class":"","subclass":"","packing_group":"","un":"","cas":"33755-53-2","poisons":"","hazardous":"No","restricted":"No","epa":"","added_by":"0","carcinogen":null}, {"id":"4","name":"(+)-Biotin N-hydroxysuccinimide ester","class":"","subclass":"","packing_group":"","un":"","cas":"35013-72-0","poisons":"","hazardous":"No","restricted":"No","epa":"","added_by":"0","carcinogen":null}]
JSON.parse(data)
也将返回[Object,Object,Object]
将调用函数更改为:
searchAjax(url: any): any
{
let new_data: any;
return $.ajax({
url: url,
type: 'post',
dataType: "json",
async: false
}).responseText;
}
最有可能的原因是我的变量是,由于异步,我的变量在被调用时为空。将调用函数更改为:
searchAjax(url: any): any
{
let new_data: any;
return $.ajax({
url: url,
type: 'post',
dataType: "json",
async: false
}).responseText;
}
file Nmae: self.json
[
{
"id": "2",
"name": "<small>L</small>(+)-Amethopterin Hydrate",
"class": "6.1",
"subclass": "",
"packing_group": "III",
"un": "2811",
"cas": "133073-73-1",
"poisons": "",
"hazardous": "Yes",
"restricted": "No",
"epa": "",
"added_by": "0",
"carcinogen": null
},
{
"id": "3",
"name": "(+)-Biotin 4-Nitrophenyl ester",
"class": "",
"subclass": "",
"packing_group": "",
"un": "",
"cas": "33755-53-2",
"poisons": "",
"hazardous": "No",
"restricted": "No",
"epa": "",
"added_by": "0",
"carcinogen": null
},
{
"id": "4",
"name": "(+)-Biotin N-hydroxysuccinimide ester",
"class": "",
"subclass": "",
"packing_group": "",
"un": "",
"cas": "35013-72-0",
"poisons": "",
"hazardous": "No",
"restricted": "No",
"epa": "",
"added_by": "0",
"carcinogen": null
}
]
$(document).ready(function($) {
$.ajax({
url: 'self.json',
type: 'GET',
dataType: 'json',
})
.done(function(respose) {
for (var i = 0; i < respose.length; i++) {
resText = respose[i].id+' '+respose[i].name+' '+ respose[i].class+' '+respose[i].subclass;
console.log(resText);
};
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
});
最有可能的原因是,我的变量在被调用时由于异步而为null。文件Nmae:self.json
file Nmae: self.json
[
{
"id": "2",
"name": "<small>L</small>(+)-Amethopterin Hydrate",
"class": "6.1",
"subclass": "",
"packing_group": "III",
"un": "2811",
"cas": "133073-73-1",
"poisons": "",
"hazardous": "Yes",
"restricted": "No",
"epa": "",
"added_by": "0",
"carcinogen": null
},
{
"id": "3",
"name": "(+)-Biotin 4-Nitrophenyl ester",
"class": "",
"subclass": "",
"packing_group": "",
"un": "",
"cas": "33755-53-2",
"poisons": "",
"hazardous": "No",
"restricted": "No",
"epa": "",
"added_by": "0",
"carcinogen": null
},
{
"id": "4",
"name": "(+)-Biotin N-hydroxysuccinimide ester",
"class": "",
"subclass": "",
"packing_group": "",
"un": "",
"cas": "35013-72-0",
"poisons": "",
"hazardous": "No",
"restricted": "No",
"epa": "",
"added_by": "0",
"carcinogen": null
}
]
$(document).ready(function($) {
$.ajax({
url: 'self.json',
type: 'GET',
dataType: 'json',
})
.done(function(respose) {
for (var i = 0; i < respose.length; i++) {
resText = respose[i].id+' '+respose[i].name+' '+ respose[i].class+' '+respose[i].subclass;
console.log(resText);
};
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
});
[
{
“id”:“2”,
“名称”:“L(+)-水合氨甲蝶呤”,
“类别”:“6.1”,
“子类”:“,
“包装组”:“III”,
“联合国”:“2811”,
“cas”:“133073-73-1”,
“毒药”:“,
“危险”:“是”,
“受限”:“否”,
“环境保护局”:“,
“添加人”:“0”,
“致癌物”:无效
},
{
“id”:“3”,
“名称”:“(+)-生物素4-硝基苯酯”,
“类别”:“,
“子类”:“,
“包装类别”:“,
“联合国”:“,
“cas”:“33755-53-2”,
“毒药”:“,
“危险”:“否”,
“受限”:“否”,
“环境保护局”:“,
“添加人”:“0”,
“致癌物”:无效
},
{
“id”:“4”,
“名称”:“(+)-生物素N-羟基琥珀酰亚胺酯”,
“类别”:“,
“子类”:“,
“包装类别”:“,
“联合国”:“,
“cas”:“35013-72-0”,
“毒药”:“,
“危险”:“否”,
“受限”:“否”,
“环境保护局”:“,
“添加人”:“0”,
“致癌物”:无效
}
]
$(文档).ready(函数($){
$.ajax({
url:'self.json',
键入:“GET”,
数据类型:“json”,
})
.完成(功能(响应){
对于(变量i=0;i
输出:
文件Nmae:self.json
[
{
“id”:“2”,
“名称”:“L(+)-水合氨甲蝶呤”,
“类别”:“6.1”,
“子类”:“,
“包装组”:“III”,
“联合国”:“2811”,
“cas”:“133073-73-1”,
“毒药”:“,
“危险”:“是”,
“受限”:“否”,
“环境保护局”:“,
“添加人”:“0”,
“致癌物”:无效
},
{
“id”:“3”,
“名称”:“(+)-生物素4-硝基苯酯”,
“类别”:“,
“子类”:“,
“包装类别”:“,
“联合国”:“,
“cas”:“33755-53-2”,
“毒药”:“,
“危险”:“否”,
“受限”:“否”,
“环境保护局”:“,
“添加人”:“0”,
“致癌物”:无效
},
{
“id”:“4”,
“名称”:“(+)-生物素N-羟基琥珀酰亚胺酯”,
“类别”:“,
“子类”:“,
“包装类别”:“,
“联合国”:“,
“cas”:“35013-72-0”,
“毒药”:“,
“危险”:“否”,
“受限”:“否”,
“环境保护局”:“,
“添加人”:“0”,
“致癌物”:无效
}
]
$(文档).ready(函数($){
$.ajax({
url:'self.json',
键入:“GET”,
数据类型:“json”,
})
.完成(功能(响应){
对于(变量i=0;i
输出:
介意给我们看一下解析代码吗?@TheLazySloth更新了它。返回的基本上是一个字符串化的数组,即3个用逗号写的对象。。它应该是一个数组或其他东西。。在JSONLint.com上输入JSON,它显示了一个错误。将其添加到[]中,错误消失。试一试?@echonax事情是。。。我很确定它们在一个数组中,我会用我的调用函数Mind向我们展示解析代码吗?@TheLazySloth更新了它。返回的基本上是一个字符串化的数组,即3个用逗号写的对象。。它应该是一个数组或其他东西。。在JSONLint.com上输入JSON,它显示了一个错误。将其添加到[]中,错误消失。试一试?@echonax事情是。。。我很确定它们在一个数组中,当我控制台.log(data)返回我时,我将使用调用函数更新它
[Object{id=“2”,…],Object{id=“3”,name=“(+)-Biotin 4-Nitroph