0

サーブレットを使用してデータをarraylistとしてajax呼び出しに送信しています。クライアント側でそのデータをjson型に解析しようとしていますが、..

SyntaxError: JSON.parse: 予期しない文字 var dbdata=JSON.parse(data);

私がajaxの成功を得ている価値は

[着信、0、INETCALL、0、ISD、31.8、ローカル、197.92、STD、73.2]

これが私のクライアント側のajaxコードです..

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

                var dbdata=JSON.parse(data);
                alert(dbdata);
            }
        });
   });

ここに私のサーブレットコードがあります..

ArrayList callcost = new ArrayList();

    try {
        String strQuery = "";
        ResultSet rs = null;

        Conexion conexiondb = new Conexion();
        conexiondb.Conectar();

        strQuery = "SELECT toc,Sum(callcost) as callcost FROM `asteriskcdrdb`.`processeddata_table` group by toc";

        rs = conexiondb.Consulta(strQuery);

        while (rs.next()) {
            String toc = rs.getString("toc").trim();
            String cost=rs.getString("callcost").trim();
            callcost.add(toc.trim());
            callcost.add(cost.trim());
        }

        out.print(callcost);
        System.out.println(callcost);
        out.close();

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

4

2 に答える 2

2

あなたはこれがAJAXが返すものだと言います:

[INCOMING, 0, INETCALL, 0, ISD, 31.8, LOCAL, 197.92, STD, 73.2]

文字列は JSON では無効です。そのはず:

["INCOMING", 0, "INETCALL", 0, "ISD", 31.8, "LOCAL", 197.92, "STD", 73.2]
于 2013-11-07T13:15:33.487 に答える
0

gsonを使用して、次のようなコードを記述できます。

Gson gson = new Gson();
String json = gson.toJson(callcost);

これにより、より複雑なオブジェクトもサポートできるようになります。または、ニコスが述べたように、自分で構築することもできます。

于 2013-11-07T13:22:42.253 に答える