首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将json处理为html

将json处理为html
EN

Stack Overflow用户
提问于 2013-08-14 02:40:21
回答 3查看 128关注 0票数 0

我能够用下面的代码从groupon api中提取这些交易

代码语言:javascript
复制
$.ajax({
type: 'GET',
url: 'https://api.groupon.com/v2/deals.json?    client_id=b252ad3634a4ab2985b79d230ccc4e49a3ea9d19&show=all&division_id=los-angeles',
async: false,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType: 'jsonp',
});

现在,我如何将交易信息添加到一个html div,以便我可以使用css风格。我只需要一些数据,如交易标题,临界点,价格等。提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-14 02:44:54

您需要为ajax请求注册一个成功的回调,然后使用从服务器返回的deals数据来呈现数据。

从服务器返回的数据具有许多属性,如typefinePrintannouncementTitledealUrlhighlightsHtmlpitchHtmlplacementPriorityredemptionLocationstartAtstatusendAt等等,您可以使用它创建视图表示并将其附加到视图中。

在下面的示例中,我使用highlightsHtml显示交易的高光

代码语言:javascript
复制
<div id="result">
</div>

然后

代码语言:javascript
复制
var $result = $('#result')
$.ajax({
    type: 'GET',
    url: 'https://api.groupon.com/v2/deals.json?client_id=b252ad3634a4ab2985b79d230ccc4e49a3ea9d19&show=all&division_id=los-angeles',
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
}).done(function(data){
    console.log(data)
    $.each(data.deals, function(idx, deal){
        var html = '<div class="deal"><h3>' + deal.announcementTitle+ '</h3><div class="fineprint">' + deal.finePrint + '</div><div class="footer"><img src="' + deal.mediumImageUrl + '"/></div></div>'
        $result.append(html)
    })
});

演示:小提琴

票数 1
EN

Stack Overflow用户

发布于 2013-08-14 02:55:10

async: false选项是不推荐的,并且违背了AJAX的目的。无论如何,JSONP不支持同步调用。只需使用getJSON方法检索数据,然后在成功的回调中将其写入DOM。

通过查看返回的数据(通过使用console.log将其记录到控制台,并打开浏览器的JS控制台),以及使用jQuery API中列出的函数,您可以不断地调整数据,直到达到预期的效果。下面的代码查看返回对象的一些属性,并使用appendprependhtml方法将它们粘贴到DOM中。

http://jsfiddle.net/kr26w/2/

代码语言:javascript
复制
$(function () {
    $.getJSON("https://api.groupon.com/v2/deals.json?callback=?", {
        client_id: "b252ad3634a4ab2985b79d230ccc4e49a3ea9d19",
        show: "all",
        division_id: "los-angeles"
    })
    .done(function (data) {
        console.log(data);
        // do whatever processing you need to do to the data
        // right here, then drop it in the div
        $.each(data.deals, function (i, v) {
            $title = $("<h2/>", {
                html: v.title,
                class: "heading"
            });
            $img = $("<img/>", {
                src: v.mediumImageUrl
            });
            $deal = $("<div/>", {
                html: v.highlightsHtml + v.pitchHtml
            });
            $("#main").append($deal);
            $deal.prepend($title, $img);
        });
    });
});
票数 3
EN

Stack Overflow用户

发布于 2013-08-14 02:43:45

试试击打。您可以轻松地将Ajax转换为javascript中的视图模型,并通过样式在屏幕上显示它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18222358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档