Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 $.getJSON()到$.ajax()_Javascript_Jquery_Ajax_Getjson - Fatal编程技术网

Javascript $.getJSON()到$.ajax()

Javascript $.getJSON()到$.ajax(),javascript,jquery,ajax,getjson,Javascript,Jquery,Ajax,Getjson,我想问一下如何将下面的$.getJSON()转换为$.ajax()。 我有一组来自var googleApi的数组,如下所示: Array [Object, Object, Object, Object, Object] // if stringified [{"id":"0","name":"user1","type":"mf","message":"bonjour user1"}, {"id":"1","name":"user2","type":"ff","message":"hello

我想问一下如何将下面的
$.getJSON()
转换为
$.ajax()

我有一组来自
var googleApi
的数组,如下所示:

Array [Object, Object, Object, Object, Object]

// if stringified
[{"id":"0","name":"user1","type":"mf","message":"bonjour user1"},
{"id":"1","name":"user2","type":"ff","message":"hello user2"},
{"id":"2","name":"user3","type":"mm","message":"konnichiwa user3"},
{"id":"3","name":"user4","type":"mf","message":"ni hao user4"},
{"id":"4","name":"user5","type":"ff","message":"high 5! user5"}]}
我想问一下,我如何识别声明变量的值(例如
content
,值为
user1
)是否与数组中
name
键列表中的值相同

下面是我的尝试,您可以在
$.getJSON()
中找到我的完整代码:

$.getJSON()

下面是我对
$.ajax()
的尝试,但我得到了一个错误“TypeError:data.result未定义”
我还尝试使用
$(this)
替换
数据。结果
但没有运气。。。如果有人能找出我做错了什么,那就太好了。请:

var googleApi = "https://sheetsu.com/apis/v1.0/f924526c";
var googleKey = "0123456789";
var googleSecret = "987654321";

var data = [];
$.ajax({
    url: googleApi,
    headers: {
    "Authorization": "Basic " + btoa(googleKey + ":" + googleSecret)
    },
    data: JSON.stringify(data),
    dataType: 'json',
    type: 'GET',

    success: function(data) {

        console.log(data);                      

        var item = data.result.find(function(e){

            return e.name == content;

        }) || data.result[0];           
        console.log("PRINT ID: " + item.id);

        var name = item.name || content;                    
        $('#nameText').text(name);
        console.log("Name: " + name);
});
谢谢你,波库普:)x

…我如何确定 变量与值相同 在数组中的名称键列表中

根据您提供的响应对象,您可以根据变量
内容

var content = "user1";

$.each(response, function(i, v) {
   if (v.name == content) {
      console.log(v.name);
   }
});


关于你问题的第二部分:

但是我得到了一个错误“TypeError:data.result未定义”

您收到错误的原因可能是因为您需要一个jQuery对象,而您从端点收到了一个JSON对象,因此使用上面的点表示法也可以:

success: function(data) {
    $.each(data, function(i, v) {
        if (v.name == content) {
            console.log(v.name);
        }
    });

}
您可以看到关于如何访问/处理对象的一系列精彩信息的答案


另外请注意,上面代码中的成功回调未关闭,这将产生错误。

阅读此内容以了解更多信息
.getJSON()
只是
.ajax()
的简写,如前所述,错误表明您的响应对象
数据
没有名为
结果
的属性,但您的ajax调用正在工作。预期的响应对象是什么样子?@KarenChan我可以问一下使用
$.getJSON()
方法有什么问题吗?@KarenChan是的,您完全可以获得对象中的值。你只需要在数组中找到每个对象,或者如果你知道数组中只有一个你真正关心的特定对象,你就可以针对这个特定的对象-
data[]
。嗨@M.Doye,我试过了,看到了你提到的惊人答案,但仍然得到了一个错误“undefined”... 如果你能让我知道我哪里做错了,那就太好了。。。XXX好了--似乎回答数据与问题中的数据略有不同。如果输入的名称与响应中的名称相匹配,则此功能正常Hello,是的,我想查看输入的名称是否与响应中的名称相匹配,但我甚至无法找到数据。结果,因为它会不断出现错误,显示数据。结果或数据['result']未定义。。。X我还意识到,当我用$.ajax()字符串化
数据时,api结果不会像$.json()中显示的那样打印{“status”:200,“success”:true,“result”:[{}]},这可能就是.result未定义的原因吧?即使数据未字符串化,xIt也不会打印
{“status”:200,“success”:true,“result”:[{}]}
。正如您在本例中所看到的,您可以简单地迭代返回的每个对象。例如,在中,如果我在文本框中输入名称“Dirk”并单击enter按钮,我会收到一条警告,上面写着“Dirk”(因为它从API返回的数据中找到了匹配项)——这不是您所期望的吗?
        function getID(name){

            $.each(data,function(key,value){    //value = object.value (name)

                $.each(value,function(key1,value1){     //value1 = user name (actual names in array)

                    if(value1 == content){
                        console.log(value.id);

                        var name = value.name;                  
                        $('#nameText').text(name);
                        console.log("Name: " + name);

                        return;
                        }
                    });

                });
            }

        getID(data);
        return false;   
        function getID(name){

            $.each(data,function(key,value){    //value = object.value (name)

                $.each(value,function(key1,value1){     //value1 = user name (actual names in array)

                    if(value1 == content){
                        console.log(value.id);

                        var name = value.name;                  
                        $('#nameText').text(name);
                        console.log("Name: " + name);

                        return;
                        }
                    });

                });
            }

        getID(data);
        return false;