Jackson.jar的使用记录

之前一直使用json-lib.jar,近期发现网上说这个jackson.jar比較好

package com.spring.controller;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ObjectWriter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; @Controller
public class JacksonController { @RequestMapping(value="user/jackson", method = {RequestMethod.POST,RequestMethod.GET})
public ModelAndView PostJsonTest(HttpServletRequest request,HttpServletResponse response) throws IOException{
ModelAndView mav=new ModelAndView();
mav.addObject("time", new Date());
JsonGenerator jsonGenerator = null;
ObjectMapper objectMapper = new ObjectMapper();
jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8); //将java对象转为json
UserJson userJson=new UserJson();
userJson.setUsername("小米");
userJson.setId("31231");
userJson.setPwd("123456");
userJson.setAge(24);
userJson.setAddress("广州");
userJson.setTel(13676586);
//objectMapper.writeValue(jsonGenerator, userJson);
String jsonStr = objectMapper.writeValueAsString(userJson); //writeObject能够转换java对象,eg:JavaBean/Map/List/Array等
//jsonGenerator.writeObject(userJson); System.out.println("-----json-------");
String jsonSS="{\"address\":\"广州\",\"id\":\"31231\",\"username\":\"小米\",\"tel\":13676586,\"age\":24,\"pwd\":\"123456\"}";
System.out.println("--------字符串json-------"+jsonSS);
System.out.println("------标准jsonStr--------"+jsonStr);
mav.addObject("jsonStr", jsonStr);
mav.addObject("jsonss", jsonSS.toString());
mav.setViewName("json/jackson"); //将list集合转为json
List<UserJson> list=new ArrayList<UserJson>();
for(int i=0;i<5;i++){
UserJson u3=new UserJson();
u3.setId("ooo"+i);
u3.setUsername("小小明"+i);
u3.setPwd("123456"+i);
u3.setAge(20+i);
u3.setAddress("广州"+i);
u3.setTel(13664+i*i*i);
list.add(u3);
}
String jsonlist = objectMapper.writeValueAsString(list);
mav.addObject("jsonlist", jsonlist.toString()); mav.setViewName("json/jackson");
return mav;
} /**
* list转为json数组
*/
public String writeListToJsonArray() throws IOException {
/*List<Event> list = new ArrayList<Event>(2);
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));*/ List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2"); OutputStream out = new ByteArrayOutputStream();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(out, list);
byte[] data = ((ByteArrayOutputStream) out).toByteArray();
System.out.println(new String(data));
String result=new String(data);
return result;
} /**
* list转为json数组
*/
public String writeListToJsonArray2() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
final ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2");
String jsonArray = ow.writeValueAsString(list);
System.out.println(jsonArray);
return jsonArray;
} } ///java对象
class UserJson{
private String id;
private String username;
private String pwd;
private Integer age;
private int tel;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public int getTel() {
return tel;
}
public void setTel(int tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }

list转为json数组(是Java main程序)

package com.main.java.demo;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List; import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ObjectWriter; public class JacksonDemo {
public static void main(String args[]) throws IOException{
//writeListToJsonArray();
//writeListToJsonArray2();
//writeListToJsonArray3();
//writeListToJsonArray4();
//writeListToJsonArray5();
writeListToJsonArray6();
} /**
* list转为json数组
*/
public static String writeListToJsonArray() throws IOException {
/*List<Event> list = new ArrayList<Event>(2);
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));*/ /*List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2");*/ /*List<Integer> list = new ArrayList<Integer>();
list.add(12);
list.add(45);
list.add(5);*/ List<Float> list = new ArrayList<Float>();
list.add((float) 12.32);
list.add((float) 45.12);
list.add((float) 5.09); OutputStream out = new ByteArrayOutputStream();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(out, list);
byte[] data = ((ByteArrayOutputStream) out).toByteArray();
System.out.println(new String(data));
String result=new String(data);
return result;
} /**
* list转为json数组
*/
public static String writeListToJsonArray2() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
final ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2"); //// Using writeValueAsString
String jsonArray = ow.writeValueAsString(list);
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray3() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A23");
list.add("B23"); //// Using Bytes
byte[] data = mapper.writeValueAsBytes(list);
String jsonArray = new String(data, "UTF-8");
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray4() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A234");
list.add("B234"); // Using ByteArrayOutputStream with new String()
OutputStream os = new ByteArrayOutputStream();
mapper.writeValue(os, list);
byte[] data = ((ByteArrayOutputStream) os).toByteArray();
String jsonArray = new String(data, "UTF-8");
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray5() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A2345");
list.add("B2345"); // Using ByteArrayOutputStream
final OutputStream os = new ByteArrayOutputStream();
mapper.writeValue(os, list);
String jsonArray = ((ByteArrayOutputStream) os).toString("UTF-8");
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray6() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A23456");
list.add("B23456"); // Using writeValueAsString
String jsonArray = mapper.writeValueAsString(list);
System.out.println(jsonArray);
return jsonArray;
} }

jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'jackson.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="<%=basePath%>js/jquery.min.js"></script> </head> <body>
<h3>Jackson 解析json</h3>
<div><p>传过来的标准json字符串-----是一个json对象----</p>${jsonStr}</div> <div><p>传过来的json格式字符串-----是一个json对象-----</p>${jsonss}</div> <p>本页面造的json格式字符串------要转为json对象才干解析(还不是一个json对象)----</p>
<div class="jsonHtml">{"address":"广州","id":"31231","username":"小米","tel":13676586,"pwd":"123456","age":24}</div> <div><p>传过来的jsonlist-----是一个json数组对象-----</p>${jsonlist}</div> </body>
</html>
<script type="text/javascript">
<!--
$(document).ready(function(){
/*
//解析服务端传过来的标准json
var jsonStr=${jsonStr};//是一个json对象
alert(jsonStr.username);//能够解析服务端传过来的json字符串。但解析不了页面造的字符串
//遍历json标准字符串
//var data=eval("("+jsonStr+")");
//alert(data.tel); //var jsonss=${jsonss};//是一个json对象,不用转为json对象,否则出错
//alert(jsonss);//是一个对象
//var item = jQuery.parseJSON(jsonss);
//alert(item.address); var jsonHtml = $(".jsonHtml").html();//是一个字符串,要转为json对象
//alert(jsonHtml.tel);//解析不了页面造的字符串,但能解析服务端传过来的字符串 var item = jQuery.parseJSON(jsonHtml);
alert(item.address);
*/ //解析listjson
var jsonlist=${jsonlist};
alert(jsonlist.length);
alert(jsonlist[0].username);
for(var i=0;i<jsonlist.length;i++){
alert(jsonlist[i].username);
} });
//-->
</script>

Jackson.jar的使用记录的更多相关文章

  1. 上班打卡--- 通过批处理命令执行jar文件来记录上班时间

    如果 一个程序员要记录自己上班工作时间的话 ,还需要靠手动去记录, 那就有点 不够范了, 程序员自然要有自己的极客范儿 , 下面就跟我一起来(zhuangbi); 先列一下整体的步骤: 1: 先做一个 ...

  2. json格式字符串与java.util.Map的互转(借助于jackson.jar)

    package com.test.javaAPI.json; /** * json工具类 * * @author Wei * @time 2016年10月2日 下午4:25:25 */ public ...

  3. WEB应用打成jar包全记录

    内容属原创,转载请注明出处 题外 由于项目的需求—不管是怎么产生的这个需求—总之,需要支持把一个web应用打成jar包供其他应用使用,这就有了下面的过程. 这个过程里用到了Spring和SpringM ...

  4. spring使用jackson返回object报错:Handler execution resulted in exception: Could not find acceptable representation

    问题:在springmvc中添加Jackson jar包返回Object类型,处理器方法的produces属性不写,默认根据类型,但如果指定了(错误原因)produces = "text/h ...

  5. 搭建SSH框架所需Jar包及其解释

    SSH2 ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2 ...

  6. AS中jar包和aar包区别及导入导出

    发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 导出 导入 区别 包和 aar jar 发表文章 摘要:jar包和aar包区别*.jar:只包含class文件与清单文件,不包含资源 ...

  7. sqoop1.4.7 导入数据到hive2.3.4 jackson版本问题

    今天用sqoop往hive导入数据的时候,执行报错,错误信息为: java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.ObjectMa ...

  8. struts2.1.8 spring2.5.6 hibernate3.3G 依赖jar包

    ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-"} struts2-spring-p ...

  9. 8.5打包libgdx为一个桌面程序(jar包)

    简陋的地图编辑终于做好了,于是要开始制作地图了,想导出为一个windows下可用的程序,让熟人代做地图,然后找人问了下打包流程,其实跟普通java打包为jar没什么区别,记录如下: 导出类型选第三个 ...

随机推荐

  1. 【bzoj2527】[Poi2011]Meteors 整体二分+树状数组

    题目描述 有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下陨石雨.BIU已经预测了接下来K场陨石雨的情况.BI ...

  2. webstorm卡顿

    http://blog.csdn.net/qq673318522/article/details/50583831 http://www.xiaobai8.com/Blog/1000.html

  3. Nginx ServerName 配置说明(转)

    Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧: s ...

  4. MongoDB 查询语法

    转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册:http://www.mongodb.org/di ...

  5. JavaScript文本收缩展开 showdetail

    原文发布时间为:2009-11-15 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  6. SqlServer不允许更改字段类型(表中已有数据)

    工具-选项-设计器-阻止保存要求重新创建表的更改,√去掉.

  7. k-mean聚类学习笔记

    才发现k-means 聚类这么简单,-_-|| 首先讲一下最朴素的k-means, 首先k-means 是一个迭代过程. 所以我们需要先确定初始,最简单的一个办法就是随机从样本中抽取k个出来,作为初始 ...

  8. Scrapy笔记:使用scrapy shell url时出现403错误的解决办法

    参考 : http://www.th7.cn/Program/Python/201704/1154208.shtml 原因是网站的防爬虫配置起到了作用 (1):第一种方法是在命令上加上-s USER_ ...

  9. git的使用学习(八)自定义git

    在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项. 比如,让Git显示颜色,会让命令输出看起来更醒目: $ git config --glob ...

  10. With语句在数据统计应用

    WITH TMP_EXECUTOR(EXECUTOR,EXECUTORNAME) AS ( SELECT DISTINCT T.EXECUTOR ,T1.FULLNAME AS EXECUTORNAM ...