0

サーバー側のコードから値を取得しています。これが私の値です..

["INCOMING",09:09:49,"INETCALL",00:14:09,"ISD",00:05:50,"LOCAL",02:38:02,"STD",01:39:28]

今、私の必要に応じて、JSONに解析したいのですが、解析するとエラーが発生します..

SyntaxError: JSON.parse: expected ',' or ']' after array element

var dbdata=JSON.parse(data);

そして、これがサーバー側から値を取得し、それをjsonに解析する私のコードです..

$.ajax({
                type: 'GET',
                url: 'getdataduration',
                async:false,
                dataType: "text",
                success: function(data) {

                    var dbdata=JSON.parse(data);

                    for(var i=0,len=dbdata.length;i<len;i++){
                        $.isNumeric(dbdata[i]) ?  callduration.push(dbdata[i]) :  toc.push(dbdata[i]);
                    }
                }

            });

みんな私を助けてください。前もって感謝します..

4

5 に答える 5

0

正しい JSON データ:

// you should create your json like this
var data = '[{
        "INCOMING" : "09: 09: 49",
        "INETCALL" : "00: 14: 09",
        "ISD" : "00: 05: 50",
        "LOCAL" : "02: 38: 02",
        "STD" : "01: 39: 28"
    }
]';

JSON での正しい Ajax の使用:

// use 'type: post' and 'dataType: json'. Because, post is safe and 
you are dealing with json data so it must be dataType: json
$.ajax({
    type : 'POST',
    url : 'getdataduration',
    async : false,
    dataType : "JSON",
    success : function (data) {
        var dbdata = JSON.parse(data);
        for (var i = 0, len = dbdata.length; i < len; i++) {
            $.isNumeric(dbdata[i].YOUR_JSON_KEY)
            ? callduration.push(dbdata[i].YOUR_JSON_KEY) 
            : toc.push(dbdata[i].YOUR_JSON_KEY);
        }
    }
});

結論:

You are using '$.isNumeric(dbdata[i])' but, as your json data your 
first value is string. So it's not gonna to work.
于 2013-11-08T09:46:15.690 に答える