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