经验分享

Javaweb-案例练习-3-JSON对象

JSON对象和简单练习前面一篇我们查找的图书的name都是通过逗号隔开,然后拼接成一个字符串传给浏览器。其实我们可以把多个图书名称用数组格式传给浏览器,前端JS代码通过遍历这个数组,也是可以拿到这些name数据。现在,我们一般不用数组,而是用JSON这格式。本篇就来看看JSON是如何解决上一篇字符串传给浏览器的代码,以及JSON对象中常见的操作。1环境搭建在使用JSON对象之前,我们需要提前下载几

JavaWeb中常用json-lib处理JSON:把commons-lang、commons-collections、ezmorph、json-lib四个jar包拷入WEB-INF/lib;JSONObject.fromObject(bean)可将JavaBean转成JSON字符串,JSONArray.fromObject(list)封装List集合为JSON数组,用JsonConfig的setExcludes可过滤pnum、id、category、description等不需要序列化的字段,比逗号拼接字符串传给前端简单得多。

  • json-lib依赖四个jar:commons-lang、commons-collections、ezmorph、json-lib
  • JSONObject.fromObject把Book等JavaBean对象转成JSON格式字符串
  • JSONArray.fromObject(list)把List集合封装为JSON数组返回前端
  • JsonConfig的setExcludes可排除pnum、id、category等字段不输出
  • Ajax场景用JSON数组替代逗号拼接字符串,前端遍历更简单

JSON对象和简单练习

前面一篇我们查找的图书的name都是通过逗号隔开,然后拼接成一个字符串传给浏览器。其实我们可以把多个图书名称用数组格式传给浏览器,前端JS代码通过遍历这个数组,也是可以拿到这些name数据。现在,我们一般不用数组,而是用JSON这格式。本篇就来看看JSON是如何解决上一篇字符串传给浏览器的代码,以及JSON对象中常见的操作。

1环境搭建

在使用JSON对象之前,我们需要提前下载几个jar包,拷贝到java web工程下的\WEB-INF\lib\路径下

以下这几个jar包可以到maven仓库下载,我这里也贴出来了这几个下载地址。

commons-lang-xx.jar

commons-collections-3.2.2.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

2把字符串改成JSON

上一篇我们在SearchBookAJAXServlet.java中是用字符串拼接,这次我们这里改成JSON。

然后找打menu_search.jsp,更改下面红圈这行代码。

这个时候ss直接接收的就是一个数组对象,这里是JSONArray对象。其中eval函数的作用就是让后面这个数组对象作为一个完整表达式存在,不然会被切割乱七八糟。保存代码之后,部署tomcat,然后重启,浏览器访问

在搜索框输入一个j或者java,看看控制台打印内容。

我这页面查询了两次,所以输出两次。

所以,使用JSON对象一句话就搞定了,比前面字符串拼接简单多了。下面,来看看JSON的常见几个操作。

3 JSON对象常见操作

这里,还是在这个图书项目,新建一个json的包,然后新建一个JSONTest.java类

我们来写一个测试用例,作用就是把JavaBean对象转成JSON格式的Sting.

使用场景1:使用JSONObject对象封装java中高级对象类型数据。

package com.kaigejava.json;

import org.junit.Test;

import

原创不易,完成人机校验,阅读全文

常见问题

JavaBean怎么转换成JSON字符串?

使用net.sf.json.JSONObject的fromObject方法,传入JavaBean对象后调用toString即可得到JSON字符串,未赋值的String属性默认为空字符串,int类型默认为0。

返回JSON时如何去掉部分字段?

新建JsonConfig对象,调用setExcludes传入不需要的字段名数组,再把JsonConfig作为参数传给JSONArray.fromObject(list, jc),输出结果就不含被排除的字段。

相关推荐