【问题标题】:Uncaught SyntaxError: Unexpected token l in JSON at position 0 when trying to parse the JSON未捕获的语法错误:尝试解析 JSON 时,JSON 中位置 0 处出现意外标记 l
【发布时间】:2018-11-15 16:45:08
【问题描述】:

我正在尝试在表格内显示的下拉列表中显示 json 值。 我的 JSON 值可以如下所示:

 var ids1 = [{"pid":"23221","des":"2321"},{"pid":"1301","des":"1301"},{"pid":"1003","des":"1003"}]

 var ids = [{"pid":"laptop","des":"laptop"},{"pid":"IPAD mini.","des":"IPAD mini."}]

可以是ids1中显示的数字,也可以是ids中显示的字符串值,也可以是组合。

当我使用下面的代码时,下拉列表中的值显示在引号中。

  $("<option />").text(JSON.stringify(value.des)).val(JSON.stringify(value.pid)).appendTo(productDropdown);

当使用下面的代码在下拉列表中显示值时,ids1 中显示的整数值不会显示引号,但是当尝试传递 id 并在列表中显示时,它会引发异常。

$("<option />").text(JSON.parse(value.des)).val(JSON.parse(value.pid)).appendTo(productDropdown);

尝试在循环中传递 ids 时出现异常。

Uncaught SyntaxError: Unexpected token l in JSON at position 0

演示链接:http://plnkr.co/edit/ilvGQPiy3nEKBuH8q46b?p=preview

js代码:

 function populateSelect(ids) {
     var ids1 = [{"pid":"23221","des":"2321"},{"pid":"1301","des":"1301"},{"pid":"1003","des":"1003"}]
     var ids = [{"pid":"laptop","des":"laptop"},{"pid":"IPAD mini.","des":"IPAD mini."}]

      var productDropdown = $(".product");

    $.each(ids, function(index,value) {
      $("<option />").text(JSON.parse(value.des)).val(JSON.parse(value.pid)).appendTo(productDropdown);
    //    $("<option />").text(JSON.stringify(value.des)).val(JSON.stringify(value.pid)).appendTo(productDropdown);
    });
}

$(document).ready(function(){
    populateSelect(); 
});

【问题讨论】:

标签: javascript jquery html javascript-objects


【解决方案1】:

您没有理由在代码中使用 JSON 方法。它们用于转换 JSON 字符串,您有一个对象。所以你应该只是阅读属性。

function populateSelect(ids) {
     var ids1 = [{"pid":"23221","des":"2321"},{"pid":"1301","des":"1301"},{"pid":"1003","des":"1003"}]
     var ids = [{"pid":"laptop","des":"laptop"},{"pid":"IPAD mini.","des":"IPAD mini."}]

      var productDropdown = $(".product");

    $.each(ids, function(index,value) {
      $("<option />").text(value.des).val(value.pid).appendTo(productDropdown);
    });
}

$(document).ready(function(){
    populateSelect(); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="product"></select>

【讨论】:

    猜你喜欢
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2019-12-04
    • 2017-10-21
    相关资源
    最近更新 更多