Jackson.jar的使用记录
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的使用记录的更多相关文章
- 上班打卡--- 通过批处理命令执行jar文件来记录上班时间
如果 一个程序员要记录自己上班工作时间的话 ,还需要靠手动去记录, 那就有点 不够范了, 程序员自然要有自己的极客范儿 , 下面就跟我一起来(zhuangbi); 先列一下整体的步骤: 1: 先做一个 ...
- json格式字符串与java.util.Map的互转(借助于jackson.jar)
package com.test.javaAPI.json; /** * json工具类 * * @author Wei * @time 2016年10月2日 下午4:25:25 */ public ...
- WEB应用打成jar包全记录
内容属原创,转载请注明出处 题外 由于项目的需求—不管是怎么产生的这个需求—总之,需要支持把一个web应用打成jar包供其他应用使用,这就有了下面的过程. 这个过程里用到了Spring和SpringM ...
- spring使用jackson返回object报错:Handler execution resulted in exception: Could not find acceptable representation
问题:在springmvc中添加Jackson jar包返回Object类型,处理器方法的produces属性不写,默认根据类型,但如果指定了(错误原因)produces = "text/h ...
- 搭建SSH框架所需Jar包及其解释
SSH2 ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2 ...
- AS中jar包和aar包区别及导入导出
发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 导出 导入 区别 包和 aar jar 发表文章 摘要:jar包和aar包区别*.jar:只包含class文件与清单文件,不包含资源 ...
- sqoop1.4.7 导入数据到hive2.3.4 jackson版本问题
今天用sqoop往hive导入数据的时候,执行报错,错误信息为: java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.ObjectMa ...
- 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 ...
- 8.5打包libgdx为一个桌面程序(jar包)
简陋的地图编辑终于做好了,于是要开始制作地图了,想导出为一个windows下可用的程序,让熟人代做地图,然后找人问了下打包流程,其实跟普通java打包为jar没什么区别,记录如下: 导出类型选第三个 ...
随机推荐
- 管理nuget程序包中搜索不到任何程序包
之前一直使用vs2012开发,管理nuget程序包没有出现过什么问题.因为开发需要,需要使用vs2015,安装vs2015后再使用vs2012时,发现管理nuget程序包中搜索不到任何资源,晕死. 想 ...
- puppet实战之master-agent
author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- master作为puppet模块的管理者,通过配置各agent节点的配置文件,使age ...
- react输入框输入中文bug
一般来说,react上我们都会用change事件去处理input的输入,但这样就导致一个问题,在输入中文的时候,我们还没输入完成就会触发change事件,这样显然不是理想状况. 那么,怎么解决这个问题 ...
- bzoj4455【ZJOI2016】小星星
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=4455 给一张图和该图的一棵生成树,求可能的编号方案数 sol :dalao教导我们,看到计数 ...
- 星际转移(cogs 736)
«问题描述: 由于人类对自然资源的消耗,人们意识到大约在2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177 年冬由于未知的原因,地球环境发生 ...
- World of Darkraft(codeforces 138D)
题意:有一个 n × m 的棋盘,每个点上标记了 L; R; X 中的一个 每次能选择一个没有被攻击过的点 (i; j),从这个点开始发射线,射线形状为: 1. 若字符是 L,向左下角和右上角发,遇到 ...
- 后缀数组基本问题QAQ
以下题目均来自罗穗骞的论文... No.1最长公共前缀 最长公共前缀: 题目: 给定一个字符串,询问某两个后缀的最长公共前缀. 分析: 某两个后缀的最长公共前缀就是区间height最小值,转化为RMQ ...
- 【BZOJ4300】绝世好题(二进制,DP)
题意: n<=100000,ai<=2*10^9 思路:按二进制逐位考虑,只要有至少1位取and后为1就可以接下去 设dp[i]为第i位取and之后为1的最长的序列长度,意会一下 #inc ...
- ubuntu 12.04LTS下搭建Andriod开发环境记录
今天在Ubuntu 12.04 LTS 下安装了android开发环境. 1, 安装JDK 先去 Oracle下载Linux下的JDK压缩包,我下载的是jdk-7u4-linux-i586.tar.g ...
- Nginx的简单最小安装!
一.检查安装环境 rpm -qa gcc pcre pcre-devel zlib zlib-devel openssl pcre, 重写rewrite zlib,为了gzip压缩. gcc,c编译器 ...