删除JSON对象上多余的逗号

时间:2015-06-19 09:59:55

标签: json angularjs

目前一直在努力消除我在下面的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 ) {

2 个答案:

答案 0 :(得分:1)

  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的字符串。

  2. 您也可以选择依靠内部使用eval的{​​{3}}

      

    在当前浏览器中,此文件不执行任何操作,   更喜欢内置的JSON对象。没有理由使用此文件,除非   命运迫使你支持IE8,这是任何人都不应该做的事情   必须再做一次。

    但是因为我们确实需要使用这个库,所以我们必须进行一些代码修改,例如只需注释掉JSON类型检查,然后覆盖本机浏览器对象(或者我们也可能引入新的JSON2全局变量)

    eval

    P.S。其他解析函数//if (typeof JSON !== 'object') { JSON = {}; //} json_parse.js(不使用json_parse_state.js)会引发语法错误

  3. 角度部分

    eval

答案 1 :(得分:0)

正如您所说的那样,JSON在您接收它的服务器上生成错误,您能改变它在那里生成的方式吗? (请遵循:Can you use a trailing comma in a JSON object?

如果您无法这样做,您需要使用此处提到的内容: