JSON对象和简单练习
前面一篇我们查找的图书的name都是通过逗号隔开,然后拼接成一个字符串传给浏览器。其实我们可以把多个图书名称用数组格式传给浏览器,前端JS代码通过遍历这个数组,也是可以拿到这些name数据。现在,我们一般不用数组,而是用JSON这格式。本篇就来看看JSON是如何解决上一篇字符串传给浏览器的代码,以及JSON对象中常见的操作。
1环境搭建
在使用JSON对象之前,我们需要提前下载几个jar包,拷贝到java web工程下的WEB-INFlib路径下
以下这几个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 com.kaigejava.domain.Book;
import net.sf.json.JSONObject;
public class JsonTest {
@Test
public void test1() {
Book b = new Book();
b.setId("12345");
b.setName("上下五千年");
b.setPrice(58);
String s = JSONObject.fromObject(b).toString();
System.out.println(s);
}
}
运行这个单元测试,输出如下内容
{"category":