【问题标题】:I am receiving a JSON.parse error on valid JSON我收到关于有效 JSON 的 JSON.parse 错误
【发布时间】:2019-02-07 06:19:03
【问题描述】:

我正在解析一些 JSON。我的 JSON 是有效的,因为当我通过 JSONLint 运行它时,我得到一个绿色标签,上面写着 Valid JSON,但由于某种原因,我仍然无法通过我的 Angular 控制器解析 JSON。

JSON 码可以是found here

控制器代码:

savvyApp.controller('ProductsCtrl', function($scope) {

    var apiJSONResult = '<linked json here>';   

    $scope.apiResult = JSON.parse(apiJSONResult);

});

【问题讨论】:

  • 您是否在控制器中的该对象上设置了一个断点,以查看返回的对象是否正确?我没有看到您的 JSON 有任何问题。
  • 我在一个带有角度的演示应用程序上尝试了你的 JSON,它工作得很好。
  • 添加了控制器代码。
  • @Dalorzo 认真的吗?你是如何消费视图中的 json 的?
  • 所以我尝试在 Firefox 和 Chrome 中将它直接传递给 JSON.parse,它还说 JSON 无效。我不确定为什么 JSONLint 说它是有效的,但它不会在浏览器中传递。

标签: json angularjs


【解决方案1】:

JSON.parse string with quotes

这应该是答案。简而言之,您不能只是复制粘贴 JSON 并用单引号引用它并期望它能够工作。您还需要确保对反斜杠进行编码。

所以 JSON 实际上是有效的。但是如果你把它复制粘贴到一个js文件中,它就不再有效了。它与 javascript 如何在字符串中编码反斜杠有关。

【讨论】:

    【解决方案2】:

    尝试改用 angular fromJson 方法:

    savvyApp.controller('ProductsCtrl', function($scope) {
    
        var apiJSONResult = '<linked json here>';   
    
        $scope.apiResult = angular.fromJson(apiJSONResult);
    
    });

    我还将方法的 Angular 文档链接留在这里

    https://docs.angularjs.org/api/ng/function/angular.fromJson

    【讨论】:

      猜你喜欢
      • 2016-01-09
      • 1970-01-01
      • 2015-12-14
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      相关资源
      最近更新 更多