javascript - 返回 json 对象中的数据

标签 javascript arrays json

我有以下 json 对象:

$dati = array(
    "data" => array(
        'address_complete'=>$data->results[0]->formatted_address, 
        'address_square'=>$data->results[0]->address_components[1]->long_name,
        'location'=>$data->results[0]->address_components[2]->long_name,
        'postal_code'=>$data->results[0]->address_components[7]->long_name,
        'data_ora'=>$tmp_date
    ),
    "str" => array("n".$i=>$array_db[username]),
    "index" => $i
);

我想显示str数据。所以我写道:

... success:function(msg){
        if(msg){
                var j = "n"+2;
                $("#location").html(msg.str.j);
        }else{
            $("#location").html('Not Available');
        }
    },

但输出为空。相反,如果我不在 $("#location").html(msg.str.j); 中使用变量 j$("#location ").html(msg.str.n2); 它工作正常。为什么会这样?

最佳答案

这是因为您正在尝试将字符串附加到对象。

您正在尝试执行类似于 msg.str.'n2' 的操作,它与 msg.str.n2 不同。

我现在就给你一个工作示例:

var object = {
    name: 'Aleksandar',
    lastname: 'Djokic'
};
alert(object.name);

结果是“Aleksandar”

现在这个:

var object = {
    name: 'Aleksandar',
    lastname: 'Djokic'
};
var something = 'name';
alert(object.something);

此警报的结果是“未定义”。

更新:对象中的数组:

var object = {
    name: 'aleksandar',
    lastname: 'djokic',
    arr: ['first','second','third']
};
for(var i = 0; i<object.arr.length; i++) {
    alert(object.arr[i]);
}

如果您想通过 key 获取它,请使用:

var something = 'n2'; 
alert(msg.str[something]); 

正确的解决方案:

... success:function(msg){
        if(msg){
                var j = "n"+2;
                $("#location").html(msg.str[j]);
        }else{
            $("#location").html('Not Available');
        }
    },

关于javascript - 返回 json 对象中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534773/

相关文章:

javascript - 根据值更改背景颜色

java - 正则表达式将引号内的文本选择为组

java - 谷歌 OAuth API

java - 在 Java 中缩短数组

java - 为什么这个 JSONObject 不是 JSONArray?

Javascript 默认数组/对象参数值

javascript - 在 JavaScript 中使用和存储 json 文本

javascript - 类(class)的淡入循环

javascript - jQuery 获取文本不是选中单选选项的值不起作用

javascript - 获取元素父元素的最简单方法