在javascript中解析Json时出错

时间:2014-06-03 09:59:16

标签: javascript json jsp parsing

这似乎是一个非常基本的问题,但由于我不太了解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>

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:-1)

尝试使用您的代码

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