Monday, 19 July 2010

Work with JSON Data in Firefox

JSON (JavaScript Object Notation),作为轻量级的数据交换格式,被越来越广泛地应用在Web Application中。这里讨论的是,如何在Firefox里,有效、方便地和JSON数据打交道。

1. JSON (JavaScript Object Notation) Regular Format

JSON数据在使用上,是非常简单易用的。很多语言都提供了JSON数据的编码和解码函数。比如在PHP程序中,可以这样来输出JSON格式的数据。

   1: <?php

   2:     // data initial
   3:     $myData = array();
   4:  
   5:     // data update
   6:     $myData = ...;
   7:  
   8:     // JSON data encode and export
   9:     echo json_encode( $myData );
  10: ?>

在实际使用过程中,这样的处理方式已经能够使程序正常地运行了。

但是,这样输出的JSON数据并没有严格遵从JSON的标准定义格式。在PHP里面,缺省情况下,PHP程序输出的内容,其媒体类型(Internet media type)是“text/html”。然而,JSON真正定义的媒体类型应该是“application/json”。因此,JSON数据严格的使用方法应该是:

   1: <?php
   2:     ...
   3:  
   4:     // JSON data encode and export
   5:     header("Content-type: application/json");
   6:     echo json_encode( $myData );
   7: ?>

JSON数据本身是一样的,但输出的数据报文的头会有所区别。采用严格格式的JSON数据输出,当然还是有用的。它使得我们在Firefox里面,能够结构化显示JSON数据,提高应用开发的效率。

2. JSONView

JSONView,是Firefox里的一个插件。它的作用,处理“application/json”类型的数据,高亮、结构化显示JSON数据。此插件只对“application/json”类型的数据有效。在安装此插件之后,Firefox一旦发现此类数据,会自动调用JSONView显示。这里是,JSONView的显示例子。

JSONView Example

3. Firebug

使用Firefox,开发Web应用程序的,对Firebug应该非常熟悉。Firebug从版本1.4a11开始,就提供了对JSON数据的支持。这种支持的前提条件,也是JSON数据必须标记为“application/json”媒体类型。

Firebug中,显示上述JSON数据,如下:

Firbug Example

注意,Firebug显示的数据顺序,是排序过的,不是原始的JSON数据字段顺序。

通常,JSONView可以用来进行Web Service的初期调试,检查输出的JSON数据是否正常;Firebug则用于AJAX通讯模式下的,JSON数据测试。

Firebug中,对返回的Response数据块,是有限制的。当数据块的大小超过100k之后,Response表单就将超过部分,省略了。当然,JSON表单里显示出来的,还是列出了全部的数据,并没有省略。

JSONView,无法直接用于显示AJAX通讯过程的JSON数据。这需要在Firebug的Response表单中,从点击右键所弹出的菜单中,选择“Open Response in New Tab”。这样,AJAX过程中的数据,就在新的页面里看,用JSONView显示出来。

firbug 2 jsonview

此选项,会把收集到的数据,直接调用JSONView显示,不会发生额外的再次通讯。相对应的,“Open in New Tab”选项,则是把AJAX的URL在新的页面打开。相应的,还要再次访问该URL,才能获取数据显示。

0 Comments:

Post a Comment

<< Home