错误:JSON 解析错误:使用角度翻译时属性名称必须是字符串文字

Posted

技术标签:

【中文标题】错误:JSON 解析错误:使用角度翻译时属性名称必须是字符串文字【英文标题】:Error: JSON Parse error: Property name must be a string literal when using angular translate 【发布时间】:2016-08-10 22:51:36 【问题描述】:

我的后端使用 nodejs 和 expressjs,前端使用 Angular。在我的网站中使用 Angular 翻译时,控制台会显示以下消息:

Error: JSON Parse error: Property name must be a string literal
parse@[native code]
fromJson@http://localhost:3000/angular/angular.js:1321:19
defaultHttpResponseTransform@http://localhost:3000/angular/angular.js:10393:24
http://localhost:3000/angular/angular.js:10484:14
forEach@http://localhost:3000/angular/angular.js:322:24
transformData@http://localhost:3000/angular/angular.js:10483:10
transformResponse@http://localhost:3000/angular/angular.js:11278:34
processQueue@http://localhost:3000/angular/angular.js:15961:30
http://localhost:3000/angular/angular.js:15977:39
$eval@http://localhost:3000/angular/angular.js:17229:28
$digest@http://localhost:3000/angular/angular.js:17045:36
$apply@http://localhost:3000/angular/angular.js:17337:31
done@http://localhost:3000/angular/angular.js:11572:53
completeRequest@http://localhost:3000/angular/angular.js:11778:15
requestLoaded@http://localhost:3000/angular/angular.js:11711:24

我确信 JSON 文件中的所有属性都被引用了。

这是语言环境文件:


  "directives.language-select.Language": "Select Language",
  "views.video-modal.Download": "Download",
  "views.video-modal.Visit": "Visit",
  "views.video-modal.Copy": "Copy",
  "views.video-modal.Close": "Close",

奇怪的是,当我只有

"directives.language-select.Language": "Select Language",

这一行。该网站运行良好。是什么导致了这个问题?

【问题讨论】:

【参考方案1】:

好吧,我突然想到你不应该在最后一行的末尾加上“,”。删除“,”解决了我的问题。

遇到这个问题的朋友可以试试这个。

【讨论】:

【参考方案2】:

我在尝试从 php 服务器返回 JSON 时遇到了这个问题。结果 JSON 不允许尾随逗号。声明在JSON Specification

【讨论】:

以上是关于错误:JSON 解析错误:使用角度翻译时属性名称必须是字符串文字的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Python 中解析 JSON。 ValueError:期望属性名称[重复]

为啥 json-parser 解析错误我的 json

从 JSON 获取属性名称

解析器错误消息:无法识别的属性“targetFramework”。请注意,属性名称区分大小写

JSON 解析错误:缺少对象成员的名称

JSON解析中的Ionic 3错误