Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JSON数组中的值_Javascript_Arrays_Json - Fatal编程技术网

Javascript 使用JSON数组中的值

Javascript 使用JSON数组中的值,javascript,arrays,json,Javascript,Arrays,Json,我有一个从PHP返回JSON数组的AJAX 我成功地将JSON数组返回到AJAX请求,并循环查看结果 Q.在本例中,如何使用数组中的特定值 目前,我可以将结果通知字符串 我希望能够独立使用这些值 数组以字符串形式输出:{“btn col_preset_id”:“1”,“btn col_preset_title”:“Pink”,“btn col_preset_bg”:“#ff66ef”,“btn col_preset_text”:“#16f3ed” js/json for (var i in my

我有一个从PHP返回JSON数组的AJAX

我成功地将JSON数组返回到AJAX请求,并循环查看结果

Q.在本例中,如何使用数组中的特定值

目前,我可以将结果通知字符串

我希望能够独立使用这些值

数组以字符串形式输出:
{“btn col_preset_id”:“1”,“btn col_preset_title”:“Pink”,“btn col_preset_bg”:“#ff66ef”,“btn col_preset_text”:“#16f3ed”

js/json

for (var i in myObject) {
    if (myObject.hasOwnProperty(i)) {
     //console.log(myObject[i]);
     // alert(JSON.stringify(myObject[i])); 
        val1 = ???; // this is what i am trying to achieve
    }
}   
已更新

这是一个完整的Ajax,我在其中尝试基于键获取单个值。这将输出空警报

$.ajax({
            type: 'POST',
            url: url, 
            dataType: 'json',

            beforeSend: function() {

            },
            success: function(data) {

                var myObject = data;

                // loop over each item
                for (var i in myObject) {
                    if (myObject.hasOwnProperty(i)) {
                       //console.log(myObject[i]);
                      // alert(JSON.stringify(myObject[i]));  
                       alert(myObject["btn_col_preset_id"]);
                    }
                }   
            }
});
任何一套

 header('Content-type: application/json');
在php中,它将告诉javascript将数据解释为JSON

或使用

 JSON.parse();

在javascript中,将字符串转换为对象。

首先,需要解析JSON编码的字符串,然后才能将其用作javascript中的对象

var data = JSON.parse(result_of_the_request), i;
for(i in data)
{
     alert("The item '" + i + "' has a value of '" + data[i] + "'");
}

请注意,如果您使用jQuery,那么有一个非常棒的快捷方式可以直接作为Javascript对象获取resquest的结果。它被称为
$.getJSON()

数据已经由AJAX
数据类型:“json”
检索到。我遇到的问题是,当我尝试基于键输出单个值时,它在警报中不会给我任何提示。您可以使用
对象。
其中键的名称是硬编码的,也可以使用
对象[i]
其中i是包含键索引的字符串。将
对象[]
硬编码一起使用将导致调用未定义的变量
。然后您将调用
object[undefined]
,这也将是未定义的。
console.log(data)
是否返回字符串或对象?是的,它生成
[object-object]、[object-object]、[object-object]、[object-object]、[object-object]、[object-object-object]
@andrewok,因此听起来像是嵌套了obect,所以您可以尝试
(myObject中的var i){for(myObject[i]中的var j]){console.log(myObject[i][j])}
是的,这样可以一个接一个地获取每个键和值,但是没有明确的方法通过键名获取值吗?@andrewok fyi
myObject[i]['btn_col u preset_title']
将实现同样的效果