AJAX-json-unerwartetes token '

Habe ich diesen code:

    $.ajax({
            dataType: 'text',
            url: '/_/js/answers.json',
            type: "GET",
            success: function (data) {
                alert(data);
                alert(data.code);
                var result = JSON.parse(data);
                var hey = JSON.parse('{"code": 123}'); 
                alert(hey.code);
                alert(result.code);
            },
            error: function () {
                alert("code not found");
            }
        });

In der first alert, alert(data) es zeigt mir, '{"- code": 123}', in der zweiten alert - alert(data.code) sagt es mir undefined im Dritten Alarm alert(hey.code) zeigt er mir 123, und das ist, was ich will, aber in der vierten Warnung, die Konsole sagt mir Uncaught SyntaxError: Unexpected token '.
Wenn ich das JSON.parse zu $.parseJSON es macht genau die gleichen Dinge.
Ich weiß nicht, was falsch ist, das json ist in Ordnung (genau das gleiche wie das json in var hey).

Ich ging die json auf dem server so:
javascript:

var json = {code: code};
        json = JSON.stringify(json);
        json = {data: json};

        $.ajax({
            url: "/_/js/write-json.php",
            type: "POST",
            dataType: 'json',
            data: json
        }); 

php:

    <?php
    $myFile = "answers.json";
    $fh = fopen($myFile, 'w') or die("can't open file");
    fwrite($fh,var_export($_POST['data'], true));
    fclose($fh);
    ?>

Dank, bhc11.

Es könnte sein, dass dein JSON ist ungültig, sicher sein, check it hier
Sie sagen, dass Ihre Alarm-Daten-Zustände '{"code": 123}'. Dies beinhaltet die single-quotes, die sind nicht dazu gedacht, dort zu sein. Das ist Ihr problem.
Einfache Anführungszeichen sind Teil des Javascript-literal-syntax, Sie sind nicht Teil des JSON selbst.
Können Sie JSON verwenden.stringify(data) oder eval(Daten) vor der Verwendung.
Ich denke, du solltest fix die server-side-code zurück gültiges JSON statt ein substring das Ergebnis, wenn yur analysiert. Nur aus Interesse, irgendeinen Grund, warum Ihr nicht mit dataType: 'json' und immer nur ein Objekt als data param?

InformationsquelleAutor bhc11 | 2014-04-19

Schreibe einen Kommentar