目前一直在努力消除我在下面的json对象上的多余“,”逗号。
{"rules": {
"1000": {
"action": "2",
"category": "skype",
"entity": "Private",
"id": "1000",
},
"1200": {
"action": "2",
"category": "http",
"entity": "Public",
"id": "1200",
},
"100": {
"action": "2",
"category": "ftp",
"entity": "Public",
"id": "100",
},
"0": {
"entity": "Private",
"category": "alcohol, tobacco",
"action": "1",
"id": "low",
},
"3000": {
} }}
也许您对使用AngularJS消除它的最简洁方法有一些见解。
从此代码段解析数据。
var request = {
url: 'sample/uri',
method: "GET",
transformResponse: specialTransform
};
var response = $q.defer( );
$http( request ).success( function( THIS DATA -> data, status ) {
答案 0 :(得分:1)
EVAL
HttpReq.setRequestHeader "Authorization", "apikey xxxxxx"
请仅在完全信任传入的json时使用var fixTrailingCommas = function (jsonString) {
var jsonObj;
eval('jsonObj = ' + jsonString);
return JSON.stringify(jsonObj);
};
fixTrailingCommas('{"rules": { "1000": { "action": "2", "category": "skype", "entity": "Private", "id": "1000" , } } }');
,并了解MDN中描述的其他eval
版本及其关于JSON解析的说明
请注意,由于与JavaScript语法相比JSON语法有限,因此许多有效的JavaScript文字不会解析为JSON。例如,JSON中不允许使用尾随逗号,并且对象文字中的属性名称(键)必须用引号括起来。请务必使用JSON序列化程序生成稍后将被解析为JSON的字符串。
您也可以选择依靠内部使用eval
的{{3}}
在当前浏览器中,此文件不执行任何操作, 更喜欢内置的JSON对象。没有理由使用此文件,除非 命运迫使你支持IE8,这是任何人都不应该做的事情 必须再做一次。
但是因为我们确实需要使用这个库,所以我们必须进行一些代码修改,例如只需注释掉JSON类型检查,然后覆盖本机浏览器对象(或者我们也可能引入新的JSON2全局变量)
eval
P.S。其他解析函数//if (typeof JSON !== 'object') {
JSON = {};
//}
和json_parse.js
(不使用json_parse_state.js
)会引发语法错误
角度部分
eval
答案 1 :(得分:0)
正如您所说的那样,JSON在您接收它的服务器上生成错误,您能改变它在那里生成的方式吗? (请遵循:Can you use a trailing comma in a JSON object?)
如果您无法这样做,您需要使用此处提到的内容: