在JQuery Ajax中检索json数组后获取json对象

时间:2012-02-28 21:06:05

标签: jquery ajax json

我使用JQuery AJAX来检索一些数据(标题和描述)。正如你所看到的,我得到一个json数组并循环遍历结果并将结果输出到div标签

        success : function(jsonArray)
        {

            $.each(jsonArray,function(messageIndex,jsonObject)
            {
               $("#results").append(jsonObject.title + " " + jsonObject.description);
             })

        }

JSONArray包含JSON对象,如下所示:

title       : test Title 1
description : test Description 1

title       : test Title 2
description : test Description 2

JSONArray是由我拥有的后端应用程序创建的,然后将结果传递给客户端(JQuery AJAX)。如果可以的话,后端还负责显示按钮。如何让客户知道是否显示按钮?

我正在考虑使用另一个JSONObject,其中包含要显示的按钮的详细信息。 例如,JSONObject就像

showButton: false
colour    : red
size      : 50px

问题在于我不确定如何在我的JQuery AJAX成功中表示这一点。目前,我给出的是一个循环遍历对象的JSONArray,但它如何知道它击中按钮json对象?

我是否需要再次进行AJAX调用以获取对象?

1 个答案:

答案 0 :(得分:0)

您当前的对象结构类似于:

[ { "title" : "...", "description" : "..." } , ... ]

相反,你可以让你的后端返回一个像这样的结构:

{
   "data" : [ { "title" : "...", "description" : "..." } , ... ],
   "button" : { "showbutton" : false, "colour" : "red", "size" : "50px" }
}

然后在你的回调函数中:

success : function(response) {
   $.each(response.data, function(messageIndex,jsonObject) {
      $("#results").append(jsonObject.title + " " + jsonObject.description);
   });

   if (response.button.showbutton) {
      // create button using response.button.colour and response.button.size
   }
}

(请注意,JSON是用于发送数据的字符串表示,但是一旦解析并且您在成功函数中开始使用它,它就不是JSON或“JSON对象”或“ JSON数组“,它只是一个对象或数组。”