Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.parse返回错误_Javascript_Json_Angular_Typescript - Fatal编程技术网

Javascript 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":"

这是我的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":"","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