在javascript中解析Json时出错
这似乎是一个非常基本的问题,但我花了几个小时,因为我对javascript和jquery不太了解 嗯,我需要解析Json字符串并获取特定键的值。 Json看起来像:在javascript中解析Json时出错,javascript,json,jsp,parsing,Javascript,Json,Jsp,Parsing,这似乎是一个非常基本的问题,但我花了几个小时,因为我对javascript和jquery不太了解 嗯,我需要解析Json字符串并获取特定键的值。 Json看起来像:{“currentCT”:“Brijesh”} 我尝试了eval()和parse(),但似乎我遗漏了什么,无法追踪问题 我试过: pre.innerHTML = eval('(' + res + ')'); 及 两个都不为我工作 输出 两种方法都返回[object] 指出我的错误 编辑 <script type="text/j
{“currentCT”:“Brijesh”}
我尝试了eval()
和parse()
,但似乎我遗漏了什么,无法追踪问题
我试过:
pre.innerHTML = eval('(' + res + ')');
及
两个都不为我工作
输出
两种方法都返回[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>
函数findTeacher(){
var url=“/TemplateTest/add/findclasssteacher.action?”;
var-standard=document.getElementById(“classes_小部件”);
var val_standard=“标准=”
+标准.选项[standard.selectedIndex].值;
url=url+val_标准+“&”;
var section=document.getElementById(“sections_小部件”);
var val_section=“section=”
+section.options[section.selectedIndex].value;
url=url+val_段;
var-xmlhttp;
if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var res=xmlhttp.responseText;
var pre=document.getElementById(“持有人”);
pre.innerHTML=JSON.parse(res);
pre.innerHTML=eval(“(“+res+”)”);
}
}
open(“GET”,url,true);
xmlhttp.send();
}
用你的代码试试这个
$.getJSON( "ajax/test.json", function( data ) {
var _data = JSON.parse(data);
console.log(_data.currentCT) // Brijesh
});
我会忘记eval()
。您还必须读取值,而不仅仅是对象:
pre.innerHTML = JSON.parse(res).currentCT;
JSON.parse(res)
返回一个对象,innerHTML
需要一个字符串作为值。如果指定的值是一个对象,则使用其toString()
方法,在您的情况下返回[object object]。是否有错误?您是如何“获取”JSON字符串的?您在错误控制台中看到的确切错误是什么?我是响应ajax请求获取JSON的。发布您的代码!您有1.8k代表,您现在应该知道我们需要所有相关信息来帮助您解决问题。我们需要您请求JSON的代码,以及JSON的确切内容。@Cerbrus我只发布了相关代码,我提到的JSON是我作为响应收到的JSON,解析JSON中包含的唯一部分代码是eval
和parse
。所以我只发布了这么多信息。如果请求也与你相关,我也会发布。谢谢你解释这个场景。这对将来也会有帮助。@teemu你能不能看看我的问题,帮我一下我没有投反对票,但为了其他读者的利益,我建议添加一些解释。
pre.innerHTML = JSON.parse(res).currentCT;