【问题标题】:Angularjs:SyntaxError: Unexpected token ' in JSON at position 97 at JSON.parseAngularjs:SyntaxError: Unexpected token ' in JSON at JSON.parse 的位置 97
【发布时间】:2018-04-21 12:30:27
【问题描述】:

这是我的输出

{"contacts":[{"id":"1","company":"Cutting","contact":"Russell Chimera"},{"id":"2","company":"Gge\'s","contact":"Marci"}]}

我收到了这个错误

SyntaxError: Unexpected token ' in JSON at JSON.parse 的位置 97

我尝试像{{x.company}}{{x.company | escape}} 一样打印它,但问题仍然存在。我尝试打印公司名称"Gge's"。我不想从公司名称中删除单引号。
谁能帮我找到解决办法?

【问题讨论】:

    标签: angularjs json


    【解决方案1】:

    您必须知道 JSON 键“联系人”有一个 JSON 数组作为其值。要访问您的值“Gge\'s”,您必须访问,

    x = data.contacts[1].company;
    

    您的数据在哪里:

    data = {"contacts":[{"id":"1","company":"Cutting","contact":"Russell Chimera"},{"id":"2","company":"Gge\'s","contact":"Marci"}]}
    

    【讨论】:

      【解决方案2】:

      您的作用域变量x 应保存data.contacts[1] 的值,以获取Gge's 的值,并从公司名称中单引号。 AngularJS 中没有这样的场景,它会从 JSON 值中省略单引号。再次确保您的 JSON。

      var app = angular.module('myApp', []);
      app.controller('myCtrl', function($scope) {
         var data = {
          "contacts":[
           {
             "id":"1","company":"Cutting","contact":"Russell Chimera"
           },
           {
             "id":"2","company":"Gge\'s","contact":"Marci"
           }
          ]
         };
         $scope.x = data.contacts[1];
      });
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
      <div ng-app="myApp" ng-controller="myCtrl">
        {{x.company}}
      </div>

      【讨论】:

      • 感谢 Ankit 的回复。但是当我通过 get $http.get("contact").then(function(response) { $scope.contact = response.data.contacts; }); 获取数据时,我的问题就来了
      • 如果我复制相同的回复并直接使用,如您的回复所示。它工作正常。
      • 我的代码有什么问题导致我无法通过 $http.get() 获取吗?
      • 谢谢。这是有效的。我的 json_encode 数组值存在问题。
      • @Deepak3301086 很高兴为您提供帮助
      【解决方案3】:

      请检查这个 :"Gge\'s" 。请尝试输入 'this 的 unicode,然后尝试解析它,然后它会解决问题。

      【讨论】:

      • 我试过“Gge's”。但我会打印 Gge's not Gge's
      • 试试这个,我刚刚删除了 \{ "id": "2", "company": "Gge's", "contact": "Marci" } 还使用 jsonlint.com 来验证您的 json
      • 从控制器打印类似 '{ "id": "2", "company": "Gge's", "contact": "Marci" }' 。因此,我需要放反斜杠\。我删除了 \ 它,但它不起作用。
      【解决方案4】:

      在我的例子中,我只是删除了 JSON 文件中的注释行(在邮递员中发布),因为 JSON 不会在其中包含 cmets。

      【讨论】:

        猜你喜欢
        • 2021-07-20
        • 2021-09-30
        • 2022-01-04
        • 2019-05-23
        • 2021-10-19
        • 2021-04-06
        • 1970-01-01
        • 1970-01-01
        • 2016-10-24
        相关资源
        最近更新 更多