技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> Ajax和WEB服务数据格式:自定义返回格式

Ajax和WEB服务数据格式:自定义返回格式

浏览:1961次  出处信息

    这是这一系列的最后一篇文章了,前面我们讲到了XML,SOAP,HTM格式和第二部分的JSON和JSONP。现在我们来看看自定义数据格式。

    最佳的数据传输格式应该是使用最少的传输量表达最需要的数据。想想之前在XML和JSON中定义的书的数据。我们每一本书包含6条数据,所以我们可以简单的按照下面的格式来写:

The Principles of Beautiful Web Design, 2nd Edition;http://www.sitepoint.com/books/design2/;Jason Beaird;SitePoint;39.95;USD
jQuery: Novice to Ninja;http://www.sitepoint.com/books/jquery1/;JEarle Castledine & Craig Sharkie;SitePoint;29.95;USD
Build Your Own Database Driven Website;http://www.sitepoint.com/books/phpmysql4/;Kevin Yank;SitePoint;39.95;USD

    我们的数据现在看起来跟分号分隔的列表差不多了。我们使用回车来区分每一本书,通过分号来区分书中的每一项内容,这个分隔符必须谨慎的选择,不选择逗号因为可能书名中出现逗号。

    

    跟JSON不同,对于自定义的数据格式,我们必须得自己来解析返回的字符串,不过这个通过JavaScript自带的split()方法可以轻松完成。下面的代码就是将我们自定义的数据格式转换成为JSON的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// convert custom data to an array of JavaScript objects
function ParseBookData(ajaxdata) {
    var book = [], bookData = ajaxdata.split("\\n"), bookItem;
    for (var b=0, bl=bookData.length; b < bl; b++) {
        bookItem = bookData[b].split(";");
        book[b] = {
            title: bookItem[0],
            url: bookItem[1],
            author: bookItem[2],
             publisher: bookItem[3],
             price: {
                 amount: parseFloat(bookItem[4]),
                 currency: bookItem[5]
             }
         };
     }
     return book;
}
var book = ParseBookData(xhr.responseText);
alert(book[0].title); // first book title
alert(book[1].url); // second book URL

    JavaScript可以很快的处理这些数据-即使是一千本书的数据。大多数情况下,你会发现下载和处理数据的时间远小于同样的基于JSON的异步请求的时间。

    自定义的数据格式有下面这些好处:

  • 很轻量级的数据,传输比较快
  • 在服务器端,不需要额外的东西就能很快很方便生成
  • 用这种格式构造恶意代码就很困难了
  •     当然也有他的不好处:

  • 对于那种格式不一定的数据就不太方便了。比如,我们的书籍信息由可选的PDF的下载链接和下载价格,这样的话,处理的程序逻辑就比较复杂了
  • 你的服务可能比使用JSON和XML更加受到限制,如果你是自己在使用这个服务,那么问题不大,如果考虑到第三方使用的话,就不方便了
  • 需要为每一种的数据格式写处理的函数
  • 这样的数据可读性就比较差了
  • 还要确定分隔符不会出现在数据中间。需要在读取的时候就做一些处理
  •     看看前面的文章:

  • Ajax和WEB服务数据格式:XML SOAP HTML
  • Ajax和WEB服务数据格式:JSON JSONP
  •     希望这一系列的文章对于大家认识Ajax的数据格式有一些帮助。

    建议继续学习:

    1. Ajax和WEB服务数据格式:JSON JSONP    (阅读:3506)
    2. Ajax和WEB服务数据格式:XML SOAP HTML    (阅读:3021)
    3. 前端开发常见图片格式详解    (阅读:2807)
    4. 图片格式与设计那点事儿    (阅读:2575)
    5. JSON 轻量级的数据交换格式    (阅读:2323)
    6. [关注细节的最佳方案]有效期时间格式的展现    (阅读:1689)
    7. 视频的容器与格式    (阅读:910)
    QQ技术交流群:445447336,欢迎加入!
    扫一扫订阅我的微信号:IT技术博客大学习
    © 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

    京ICP备15002552号-1