在javascript中解析Json时出现错误

error while parsing Json in javascript

本文关键字:错误 Json javascript      更新时间:2023-09-26

这似乎是一个非常基本的问题,但它花了我几个小时,因为我不太了解javascript和jquery。

嗯,我需要解析Json字符串并获得特定键的值。Json看起来像:{"currentCT":"Brijesh"}

我尝试了eval()parse(),但似乎我错过了一些东西,我无法追踪问题。

我试着:

pre.innerHTML = eval('(' + res + ')');

pre.innerHTML = JSON.parse(res);

两个都不适合我。

两个方法都返回[object Object]

指出我的错误

编辑

<script type="text/javascript">
    function findTeacher() {
        var url = "/TemplateTest/add/findclassteacher.action?";
        var standard = document.getElementById("classes_widget");
        var val_standard = "standard="
                + standard.options[standard.selectedIndex].value;
        url = url + val_standard + "&";
        var section = document.getElementById("sections_widget");
        var val_section = "section="
                + section.options[section.selectedIndex].value;
        url = url + val_section;
        var xmlhttp;
        if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                var res = xmlhttp.responseText;
                var pre = document.getElementById("holder");
                pre.innerHTML = JSON.parse(res);
                pre.innerHTML = eval('(' + res + ')');
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send();
    }
</script>

我会忘记eval()。您还必须读取值,而不仅仅是对象:

pre.innerHTML = JSON.parse(res).currentCT;

JSON.parse(res)返回一个对象,innerHTML期望一个字符串作为值。如果指定的值是一个对象,则使用它的toString()方法,在您的情况下返回[object object]。

用你的代码试试

$.getJSON( "ajax/test.json", function( data ) {
    var _data = JSON.parse(data);
    console.log(_data.currentCT) // Brijesh
});