0

phonegap でモバイルアプリを開発しています。Chromeでテストすると、エラーは表示されず、データベースが正しく入力されていれば. Eclipse を介して実際のデバイスで試してみると、以下のエラーが表示されます。これらのエラーが発生するのはなぜですか?

09-22 19:56:49.568: E/Web Console(6912): Uncaught SyntaxError: Unexpected token } at file:///android_asset/www/index.html#page2:1

09-22 19:56:49.558: E/Web Console(6912): Uncaught SyntaxError: Unexpected token ILLEGAL at file:///android_asset/www/index.html#page2:1

index.htmlにはそのような文字がないため、}を見つける場所。

JSON を読み込もうとすると、これらのエラーが発生します。

PS私はこのコードを使用してjsonを読み取ります

    function billpaymentstxt()
{
var billpaymentsjson = '{"posts" : [', 
    i, 
    line = 0,
    billpayments = 0,
    mybillpaymentsjson,
    Amountint,
    Amountdec;

    jQuery.ajaxSetup({
            'beforeSend' : function(xhr) {
                 xhr.overrideMimeType('text/plain; charset=iso-8859-7');
            },
    });


    jQuery.get('BillPayments.txt',function(data){
//  alert(data.length);
    line=0;

        for (i = 1; i <= ((data.length)/20); i += 1) {
            billpaymentsjson += '{"Id" :' + '"' + data.substr((line+0), 10).trim() + '"'  + ',';
            Amountint = data.substr((line+10), 7).trim();
            Amountdec = data.substr((line+17), 2).trim();
            billpaymentsjson += '"PreviousPayments" : ' + '"'  + Amountint + '.' + Amountdec + '"'  +  '}';
            line = i * 20;
    //alert(line);
            if (line == data.length)
            {
                billpaymentsjson += ']';
            }
            else 
            {
                billpaymentsjson += ',';
            }
        }

        if (line == 0)
        {
            billpaymentjson += ']';
        }


        billpaymentsjson += "}";
        //alert(billpaymentsjson);
            mybillpaymentsjson = jQuery.parseJSON( billpaymentsjson );

            if (((mybillpaymentsjson.posts.length)) == 0) {
                $('#mycontent article').html('<strong>bill - <font color=blue>OK</font></strong>');
            }


            for (i = 0; i < (mybillpaymentsjson.posts.length); i += 1) {

                notesdb.transaction((function(i) {
                    return function(t){       

                        t.executeSql('INSERT into billpayments (barcode, amount, receiptno) VALUES (?,?,?);',
                            [mybillpaymentsjson.posts[i].Id, mybillpaymentsjson.posts[i].PreviousPayments, 0],
                            function(){ 
                                billpayments = billpayments + 1;
                                $('#mycontent article2').html(billpayments + '/' + mybillpaymentsjson.posts.length + ' <strong>billpayments</strong>');

                                if ((mybillpaymentsjson.posts.length) - billpayments == 0) {
                                    $('#mycontent article2').html('<strong>billpayments - <font color=blue>OK</font></strong>');
                                } 
                            }
                        );
                    };
                })(i));
            }
    });             
}
4

1 に答える 1

1

私が知っていることから、JSON は ISO-8859-7 を処理できません。

http://www.php.net/manual/en/function.json-encode.php

「この関数は、UTF-8 でエンコードされたデータでのみ機能します。」たぶん、あなたはいくつかの変換を試すことができます

于 2012-10-12T15:55:07.267 に答える