servlet中查询出的list转换为json格式输出
2018-04-06 21:01
387 查看
servlet与dao中需要用到
public List<Map<String, Object>> getAll(){
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
String sql = "select id,teachername,password,tel from teacher ";
ResultSet rs = this.executeQuery(sql);
try {
while(rs.next()){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", rs.getInt("id"));
map.put("teachername", rs.getString("teachername"));
map.put("password", rs.getString("password"));
map.put("tel", rs.getString("tel"));
list.add(map);
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
this.close();
}
System.out.print("AllTeacherDao执行");
return list;
}
}servlet:
使用JSONStringer,需要导入json的6个jar
JSONStringer 类用来快速方便地创建一个Json文本,创建出来的文本完全符合Json文本的语法,没有多余的空格键,所以生成的文本可以直接被储存或者传输,每一个JSONStringer的实例都能创建一个JSON文本。
一个JSONStringer的实例提供了一个value方法来向文本中添加键值,提供了一个key方法,key方法必须在value方法之前调用,用来向文本中添加键,有一个array和endArray方法用来制作和捆绑数组值,也有object方法和endObject方法用来制作和捆绑object值。每一个方法都返回一个JSONStringer的实例,允许有串联结构。例如:
myString = new JSONStringer()
.object()
.key("JSON").value("Hello, World!")
.endObject()
.toString;
上面这个实例创建了如下的字符串:
{"JSON":"Hello, World!"}
第一个方法必须是object 或者array,没有方法用来添加逗号和冒号,JSONStringer自动为你添加,object或者是array最多可以嵌套20层。
有的时候,使用JSONStringer类比使用JSONObject 类更容易创建一个Json文本
构造方法:
JSONStringer()——-构造一个新的JSONStringer 对象
方法:
array()——开始添加一个array
endArray()——结束一个array
object()——开始添加一个object
endObject()——结束一个object
key(String s)——添加一个键
value系列方法——添加一个键值
toString()——返回一个JSON文本的字符串
List<Map<String, Object>>
List集合中的对象是一个Map对象,而这个Map对象的键是String类型,值是Object类型
List以Map接口对象为列表对象。 Map以String为键,以Object为值。
List里只能放Map类型的对象,而这个Map类型的对象又只能放以String类型为键,以Object类型为值的键值对。DAO:public class AllTeacherDao extends DBHelper{
public List<Map<String, Object>> getAll(){
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
String sql = "select id,teachername,password,tel from teacher ";
ResultSet rs = this.executeQuery(sql);
try {
while(rs.next()){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", rs.getInt("id"));
map.put("teachername", rs.getString("teachername"));
map.put("password", rs.getString("password"));
map.put("tel", rs.getString("tel"));
list.add(map);
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
this.close();
}
System.out.print("AllTeacherDao执行");
return list;
}
}servlet:
使用JSONStringer,需要导入json的6个jar
JSONStringer 类用来快速方便地创建一个Json文本,创建出来的文本完全符合Json文本的语法,没有多余的空格键,所以生成的文本可以直接被储存或者传输,每一个JSONStringer的实例都能创建一个JSON文本。
一个JSONStringer的实例提供了一个value方法来向文本中添加键值,提供了一个key方法,key方法必须在value方法之前调用,用来向文本中添加键,有一个array和endArray方法用来制作和捆绑数组值,也有object方法和endObject方法用来制作和捆绑object值。每一个方法都返回一个JSONStringer的实例,允许有串联结构。例如:
myString = new JSONStringer()
.object()
.key("JSON").value("Hello, World!")
.endObject()
.toString;
上面这个实例创建了如下的字符串:
{"JSON":"Hello, World!"}
第一个方法必须是object 或者array,没有方法用来添加逗号和冒号,JSONStringer自动为你添加,object或者是array最多可以嵌套20层。
有的时候,使用JSONStringer类比使用JSONObject 类更容易创建一个Json文本
构造方法:
JSONStringer()——-构造一个新的JSONStringer 对象
方法:
array()——开始添加一个array
endArray()——结束一个array
object()——开始添加一个object
endObject()——结束一个object
key(String s)——添加一个键
value系列方法——添加一个键值
toString()——返回一个JSON文本的字符串
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.service(req, resp); AllTeacherDao dao= new AllTeacherDao(); List<Map<String, Object>> list = dao.getAll(); JSONStringer stringer = new JSONStringer(); stringer.array(); for (int i = 0; i < list.size(); i++) { Map<String, Object> teacherlist= list.get(i); try { stringer.object(); Iterator it = teacherlist.keySet().iterator(); //迭代器,返回一个所有key值的迭代遍历 while (it.hasNext()) { Object key = it.next(); stringer.key((String) key).value(teacherlist.get(key)); } stringer.endObject(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } stringer.endArray(); PrintWriter out = resp.getWriter(); out.print(stringer.toString()); System.out.println("servlet执行"); }
相关文章推荐
- 如何将一个List<Map<String,String>>类型的集合数据转换成json格式输出
- C# Json格式转换成List集合
- json格式数据 ,将数据库中查询的结果转换为json(方式2)
- List数组转换JSON格式
- PHP中把数据库查询结果输出为json格式简单实例
- 将DataTable或Ilist转换成JSON格式
- spring roo 开发meavn项目(二)后台返回map,list自动转换json格式
- Java将List,Set,Arrary,String,Object转换为JSON格式
- 使用fastjson对Map或List实现快速Json格式转换
- 将DataTable或Ilist转换成JSON格式
- jquery里面调用getjson方法,将list类型转换为json格式数据,在页面迭代显示
- List<Map<String, Object>> 转换成JSON数据格式保存再转List<Map<String, Object>> 返回
- java处理List<String>的内容将其转换成标准json格式
- fastjson转换json格式数据为List<HashMap>转换异常问题
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- [javase][json]fastJson在java后台转换json格式数据探究--处理数组/List/Map
- 将JSON格式数据转换成适用于SimpleAdapter的数据形式 List<Map<String, String>>
- Jsp用JDBC查询数据库并输出JSON格式数据
- 如何用好Map与List,转换成相应的json格式便于前后台的交互。
- ASP.NET DataSet查询结果转换为JSON格式数据