Skip to main content
 首页 » 编程设计

javascript之未捕获的语法错误 : Unexpected token p in JSON at position 36

2024年04月18日40artech

我用共享点填充网页,所以我做了一个 json 来使用像这样的 ajax 获取数据:

function completeFleet(data, target, eng) { 
var items = data.d.results; 
console.log(items); 
var prefix = "<div class='row'>"; 
var sufix = "</div>"; 
var menu = "<div class='col-md-4'>"; 
var cat = ""; 
var spec = ""; 
var counter = 0; 
var obj = null; 
for (item in items) { 
    spec = ""; 
    if (counter == 1) { 
 
        menu += "</div><div class='col-md-4'>"; 
        counter = 0; 
    } 
    if (eng) { 
        obj = JSON.parse(items[item].Specifications); 
        for (var key in obj) { 
            spec += "<div class='row'><div class='col-md-12 ftBottomSeparator'><span class=' t10'>" + key + "</span>&nbsp;<span class='t06' style='float:right;'>" + obj[key] + "</span></div></div>"; 
        } 
        menu += "<div class='row ftContainerOut'><div class='col-md-12 ftContainer'><div class='row ftHeader'><div class='col-xs-9 t09'>" + items[item].Title + "</div><div class='col-xs-3 text-right'></div></div><div class='row'><div class='col-md-6' style='padding-top:10px'><img src='" + items[item].Imagen.Url + "' class='img-responsive img-center' style='border:0px solid blue; max-width:150px;max-height:120px;' /></div><div class='col-md-6'>" + spec + "</div></div></div></div>"; 
    } else { 
        obj = JSON.parse(items[item].Especificaciones); 
        for (var key in obj) { 
            spec += "<div class='row'><div class='col-md-12 ftBottomSeparator'><span class=' t10'>" + key + "</span>&nbsp;<span class='t06'  style='float:right;'>" + obj[key] + "</span></div></div>"; 
        } 
 
        menu += "<div class='row ftContainerOut'><div class='col-md-12 ftContainer'><div class='row ftHeader'><div class='col-xs-9 t09'>" + items[item].Title + "</div><div class='col-xs-3 text-right'></div></div><div class='row'><div class='col-md-6' style='padding-top:10px'><img src='" + items[item].Imagen.Url + "' class='img-responsive img-center' style='border:0px solid blue; max-width:150px;max-height:120px;' /></div><div class='col-md-6'>" + spec + "</div></div></div></div>"; 
    } 
    counter++; 
} 
$(target).html("<div class='panel-body'><div class='container-fluid'>" + prefix + menu + sufix + "</div></div>"); 
 
} 

我有 5 个不同的对象,但其中一个不显示数据,我的网页是英文和西类牙文,英文是收取所有数据,但西类牙文是其中一个 不起作用,我在第 36 位出现错误,而第 36 位是未显示的项目。知道这里出了什么问题吗?问候

这些作品

这没用

--------更新------------

如果我评论这一行:

 //obj = JSON.parse(items[item].Especificaciones); 

然后放

 if(items[item].Especificaciones){ 
 JSON.parse(items[item].Especificaciones); 
   } 

它现在与图像一起运行,但现在我没有“Especificaciones”列表

现在当我使用

var stringifyObj = JSON.stringify(items[item].Especificaciones);  
var obj = JSON.parse(stringifyObj); 

我得到这样的东西:

请您参考如下方法:

确保 JSON.parse 中相应键的值不为空。例如-

JSON.parse(items[item].Specifications) 

确保项目在项目索引中具有值并且项目[项目]具有属性规范。

您可以在 JSON.parse 之前检查 items[item].Specifications 是否不为 null。

if(items[item].Specifications){ 
  JSON.parse(items[item].Specifications) 
} 

更新

JSON.parse() 用于将包含 JSON 符号的字符串转换为 Javascript 对象。要成为有效的 JSON,字符串必须用双引号引起来。

尝试将对象字符串化,然后再次解析。

var stringifyObj = JSON.stringify(items[item].Especificaciones);  
var obj = JSON.parse(stringifyObj); 

错误的原因是 JSON.parse() 需要一个 String 值和 items[item].Especificaciones 是一个数组