【问题标题】:error while parsing Json in javascript在javascript中解析Json时出错
【发布时间】:2014-06-03 09:59:15
【问题描述】:

这似乎是一个非常基本的问题,但我花了几个小时,因为我不太了解 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>

【问题讨论】:

  • 您是否遇到任何错误?您如何“获取” JSON 字符串?
  • 您在错误控制台中看到的确切错误是什么
  • 我正在获取 json 以响应 ajax 请求。
  • 发布您的代码!您有 1.8k 代表,您现在应该知道我们需要所有相关信息来帮助您解决问题。我们需要您请求 JSON 的代码,以及 JSON 的确切内容。
  • @Cerbrus 我只发布了相关代码,我提到的json是我收到的响应,解析json中包含的代码只有evalparse。所以我只发布了这么多信息。如果请求也与您相关,我也会发布。

标签: javascript json jsp parsing


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

用你的代码试试这个

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

【讨论】:

  • 我没有投反对票,但为了其他读者的利益,我建议添加一些解释。
猜你喜欢
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多