ajax中的json的使用

javaweb端的开发,服务器往往会和页面进行一些进行一些小范围的数据刷新或者提交,这时候在我们面前的问题就来了。

                 1.服务器端返回的数据是什么类型的?使用response输出一段看起来都会死掉很多脑细胞的html?没有更好的形式吗?

                  2.客户端怎么解析?用什么解析?是不断的新建html标签,然后追加到某个div或table里面?

好吧不装逼了。

现在的ajax大家都很熟悉了,那么这种异步交互给我们的开发和用户体验带来了新的活力。不过还没完,JSON又来了。这使得ajax变得更加的变态。下面就来见识见识吧。

         我相信大多数人现在使用异步交互还是使用JQuery封装的,没有那个傻x自己写吧。

        JSON的格式其实很简单,我的理解就是map和数组的结合体,以类似于键值对的方式存在:

              1.建和值之间用:隔开。

              2.同等地位的键值对使用,隔开。

              3.一个键对应多个值时这些键值对包括在[  ]内。

              4.取值的方式和我们使用的ognl基本类似,只是在遇到[ ]的键值对时使用[index],index表示索引位置,记住从0开始。

拿来看看例子吧:

          

var student={"name":"dongzheng","sex":"m"};

//获取name的值使用
var name=student.name;
var student=[{"name":"dongzheng","sex":"m"},{"name":"xue","sex":"f"}];
//获取第二个人的名字使用
  var name2=student[1].name;
var  student={"class1":
                        [
                         {"name":"dongzheng","sex":"m"}, 
                         {"name":"xue","sex":"f"}]};
//获取class1的第一个学生的性别使用
var sex=student.class1[0].sex;

当然还有更复杂的形式,不过也无非是集合和键值对的嵌套使用,所以把一个复杂的格式分解成一小部分就可以了。这理解不多介绍了。

下面来介绍一下服务器端的使用。

在你的servlet或者action中使用response获得输出流来输出数据是比较明智的选择 ,但是并不意味只要拼接负责的html标签。我们可以借助这个开源的JSON 来实现。这时候我们可以到网上下载json的jar包。其中包括下面几个:

                                 json-lib-jdk1.5.jar  -------json类库的核心jar包。

                                ezmorph.jar----------------完成bean的复制功能。

还有一些apatche的一些像工具类的增强包和对javalang的增强等。

下面就是使用了:

          1.通常我们查询到的都是结集合对象,所以我们先来看看集合对象怎么来转换成json。

           json为我们提供了JSONArray这个类来给我们使用。

          

//list就是我们获得的数据集合
JSONArray  jarray=JSONArray.fromObject(list);
//如果数据集合内的数据对象数据列太多,而且我们也用不到我们可以配置过滤器。
JsonConfig config=new JsonConfig();
config.setExcludes(new string[]{conlumnname});

下面就是利用response的流输出了。

页面端的ajax代码我就不多做冗余解释了。无非就是JQuery封装的那几个方法。好了json的介绍就到这了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章