在JS中输出数组数据

时间:2015-08-10 13:38:56

标签: javascript arrays json

我已经在互联网上寻找一种可以实现我需要的工作方法,但到目前为止没有运气。

基本上,我有一个运行数据库查询的AJAX请求,并将所有内容回显到json_encode函数doo-dah - > echo json_encode($row);

现在,这会传回我的Javascript,这就是我被困的地方。我需要访问JSON数组并选择各种部分来动态地改变输入字段值。这是我必须运行AJAX请求并检索JSON数组的代码。

var vars = new XMLHttpRequest();
    vars.onload = function() {
        var retrieved = new Array(this.responseText);
        document.getElementById("testingOutput").innerHTML = retrieved;
};

vars.open("GET", "https://my.url.here", true);
vars.send();

以下是我尝试过但没有成功的事情(JS的新手......)

var forename = retrieved['first_name']; // Didn't work
var forename = retrieved[1]; // Didn't work either

我也试过' for'循环,它们还没有工作(找不到我复制的例子..)。我最初试图将检索到的var设置为(this.responseText)而没有运气。我真的需要一种方法,我可以拉出数组的一部分,以坚持下面的一些jQuery:

$("#firstname").val = forename;
$("#lastname").val = surname;

(其中' forename'和'姓氏'是来自数组的js变量..)

任何帮助都会受到赞赏,因为我正在失去理智!!

编辑:当我刚刚使用var retrieved = (this.responseText);时,当我使用typeof时,它说该类型是一个字符串.. var retrieved = new Array(this.responseText)返回一个对象..我不知道如何访问它们。

1 个答案:

答案 0 :(得分:3)

看起来您正在发送 JSON ,因此您需要在 JavaScript 中解析 JSON 以使其成为原生对象

var retrieved = JSON.parse(this.responseText);

您可以阅读有关JSON.parse here

的更多信息

作为suggested by kiltek,在调试时使用console.logconsole.dir也是一个好主意,这样您就可以查看正在使用的数据结构