使用AJAX在HTML输入框中显示JSON?

时间:2010-11-27 23:23:26

标签: html ajax json

我是AJAX和Javascript的新手,需要对此代码提供一些帮助。

以下是我正在使用的JSON位

{"URL":"www.youtube.com","Total URLs":132,"Completed":63}

我需要获取这些值中的每一个,并使用AJAX在不同的HTML输入文本框中显示。

Current URL: <input type="text" name="urlqueue">
Total URLs: <input type="text" name="total">
Completed: <input type="text" name="completed">

现在我有

 ajaxRequest.onreadystatechange = function(){
  if(ajaxRequest.readyState == 4){
   document.form.total.value = ajaxRequest.responseText;
  }
 }
 ajaxRequest.open("GET", "test_results.php", true);
 ajaxRequest.send(null); 

你可以看到这不再起作用了。我用来让文件只包含1个数字而不包含JSON。现在我需要使用该文件获得许多带有JSON的结果,并且需要一些指导。

如何使用AJAX在HTML输入框中显示JSON?

2 个答案:

答案 0 :(得分:0)

使用JSON解析库或使用eval解析JSON。请注意,使用eval可能非常危险,因为如果使用不正确,您可能会引入跨站点脚本漏洞。

生成的对象将具有值,因此您可以单独设置每个字段,例如:

document.form.total.value = jsonObject["Total URLs"];

答案 1 :(得分:0)

请注意,当您创建AJAX并检索响应时,响应文本不是JavaScript对象。它只是字符串,因此您应该将字符串计算为JavaScript Object。以下代码将以快速的方式生成它。但是,作为JavaScript大师的Douglas Crockford说“eval是邪恶的”。

var data = eval('(' + ajaxRequest.responseText + ')');
document.form.total.value = data[Total URLs]

我还想记住,避免使用属性名称中的空格。例如,您应该拥有名为“Total_URLs”或“TotalURLs”等的属性,而不是“Total URL”