AngularJS解析大型json负载时的“意外标记”
我有一个相当大的负载,通过JavaREST服务作为json返回,大约3000条相当轻量级的对象记录。Jax-RS和JaxB正在为我整理json方面的内容,因此我怀疑返回的json中是否存在错误 当我直接调用rest资源并在notepad++中查看有效负载时,json文件本身看起来很好,并且底层SQL表中没有回车等胭脂字符AngularJS解析大型json负载时的“意外标记”,json,angularjs,rest,Json,Angularjs,Rest,我有一个相当大的负载,通过JavaREST服务作为json返回,大约3000条相当轻量级的对象记录。Jax-RS和JaxB正在为我整理json方面的内容,因此我怀疑返回的json中是否存在错误 当我直接调用rest资源并在notepad++中查看有效负载时,json文件本身看起来很好,并且底层SQL表中没有回车等胭脂字符 SyntaxError: Unexpected token at Object.parse (native) at ub (http://localhost:
SyntaxError: Unexpected token
at Object.parse (native)
at ub (http://localhost:8080/misf-web/lib/angular/angular.min.js:13:122)
at e.defaults.transformResponse (http://localhost:8080/misf-web/lib/angular/angular.min.js:98:83)
at http://localhost:8080/misf-web/lib/angular/angular.min.js:97:347
at Array.forEach (native)
at n (http://localhost:8080/misf-web/lib/angular/angular.min.js:6:470)
at Yb (http://localhost:8080/misf-web/lib/angular/angular.min.js:97:329)
at c (http://localhost:8080/misf-web/lib/angular/angular.min.js:99:14)
at i (http://localhost:8080/misf-web/lib/angular/angular.min.js:79:437)
at http://localhost:8080/misf-web/lib/angular/angular.min.js:80:485 angular.min.js:63
我开始玩弄这些数据。删除特定字段中以A开头的所有内容,然后删除B…,以查看是否可以将其缩小到一组特定的记录
我删除了从S开始的所有内容,角度开始起作用
所以我重新加载了数据。删除了以S…开头的所有内容并重试,但失败。因此,我怀疑这与返回的Json无关,而是与有效负载的大小有关
我很感激我可以使用服务器端分页,但我更关心的是为什么这不起作用?我想在应用程序启动时将3000个对象完全加载到应用程序中,但它不起作用……我看不出有什么明显的原因
问候
-更新:建议使用JSONLINT
出现以下错误:
Parse error on line 23:
... "projectNm": "(Delete) A
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
我不知道为什么,因为看起来还可以:
{
"approvedPriority": "UNKNOWN",
"disease": "UNKNOWN",
"diseaseArea": "UNKNOWN",
"dpomBpomPhase": "UNKNOWN",
"imed": "UNKNOWN",
"jtastRanking": "UNKNOWN",
"moleculeOrTypeOfProduct": "UNKNOWN",
"planningStatus": "06-TO BE DELETED",
"programCategoryDesc": "UNKNOWN",
"projectCode": "UNKNOWN",
"projectNm": "(Delete) Analytical Productivity (Delete)",
"projectSk": 562,
"projectType": "UNKNOWN",
"therapyArea": "UNKNOWN"
},
更新2:
好的,数据库值看起来不错。然而,当我将json结果中的值复制到文本编辑器中时,JaxB通过线路返回值的过程引入了流氓字符……因此我有一个带有我的-名称的记录,当我将值复制到notepad++中时,它表示我的!!名称中引入了一些奇怪的字符来替换-。其他带有连字符的值也很好。DB端的记录很好…这里发生了什么?为什么泽西决定破坏一些输出
更新3:
循环浏览其中一个违规项目中的字符。在数据库中,当粘贴到Excel并检查Ascii字符时,会出现Ascii代码150,这是一个不可打印的字符
就浏览器而言,i不太可能是尺寸问题。在浏览器开发工具/控制台的“网络”选项卡中检查请求的全部内容,并将其粘贴到jsonlint.com以查看其无效位置。我将支持@charlietfl关于将数据放入jsonlint的建议。但是,您应该使用angular的未缩小版本进行调试。希望它能给你更少神秘的堆栈跟踪。谢谢,尽管我不确定Jsonlint是否有问题:第23行的Parse error:。。。projectNm:删除----------------^应为“字符串”、“数字”、“NULL”、“TRUE”、“FALSE”、“{”、“[”是否不允许在对象的文本值中使用左括号。。。!?