【问题标题】:Get a json object after retrieving a json array in JQuery Ajax在 JQuery Ajax 中检索一个 json 数组后获取一个 json 对象
【发布时间】:2012-02-28 21:06:04
【问题描述】:

我使用 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 来获取对象?

【问题讨论】:

    标签: jquery ajax json


    【解决方案1】:

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

    [ { "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 是用于发送数据的 string 表示形式,但是一旦它被解析并开始在成功函数中使用它,它就不是 JSON 或“JSON 对象”或“ JSON数组”,它只是一个对象或数组。)

    【讨论】:

    • 谢谢。我已将 JSONArray(数据)和 JSONObject(按钮)放入 JSONObject 并将其发送给客户端进行解析。 :)
    猜你喜欢
    • 2020-06-08
    • 1970-01-01
    • 2021-08-07
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多