$ .getJSON()到$ .ajax()

时间:2015-11-03 15:53:42

标签: 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 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)是否与{{1}列表中的值相同数组中的键?

以下是我的尝试,您可以在name here找到我的完整代码:

$.getJSON()

$.getJSON()

以下是我对var googleApi = 'https://api.com/url_here'; $.getJSON(googleApi, function(json){ console.log(JSON.stringify(json)); var item = json.result.find(function(e){ return e.name == content; }) || json.result[0]; console.log("PRINT ID: " + item.id); var name = item.name || content; $('#nameText').text(name); console.log("Name: " + name); }); 的尝试,但我收到错误“TypeError:data.result未定义”;
我也尝试使用$.ajax()替换$(this)但是没有运气......如果有人能够确定我做错了什么,那将是非常好的:

data.result

Merci beaucoup :)))x

2 个答案:

答案 0 :(得分:2)

  

...我怎样才能确定声明的值是否为   变量...与值相同   在数组中的名称键列表中?

根据您提供的回复对象,您可以iterate through it并根据变量content检查值:

var content = "user1";

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

Example Fiddle

至于问题的第二部分:

  

但是我收到错误#34; TypeError:data.result未定义&#34 ;;

你可能收到错误的原因是因为find期待一个jQuery对象,你从端点收到了一个JSON对象,所以使用上面的点符号也应该有效:

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

}

您可以查看this question的答案,了解有关如何访问/ proccess对象的一系列精彩信息。

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

答案 1 :(得分:0)

        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;