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没什么区别,记录如下: 导出类型选第三个 ...
随机推荐
- Linux内存使用消耗高
Linux系统下如果内存占用很高又找不到是被什么程序占用的,需要考虑下是否是SLAB的问题.SLAB是Linux操作系统的一种内存分配机制,可以使用下面命令来查看.例如: cat /proc/memi ...
- [Cocos2dx Bug] [win32] Function CCFileUtils::fullPathFromRelativeFile forget consider the path separated by '\\'
[Cocos2dx 2.2.4] [win32平台Bug] const char* CCFileUtils::fullPathFromRelativeFile(const char *pszFilen ...
- ReentrantLock学习笔记
参考:https://www.jianshu.com/p/4358b1466ec9 前言: 先来想象一个场景:手把手的进行锁获取和释放,先获得锁A,然后再获取锁B,当获取锁B后释放锁A同时获取锁C,当 ...
- Hadoop入门第四篇:手动搭建自己的hadoop小集群
前言 好几天没有更新了,本来是应该先写HDFS的相关内容,但是考虑到HDFS是我们后面所有学习的基础,而我只是简单的了解了一下而已,后面准备好好整理HDFS再写这块.所以大家在阅读这篇文章之前,请先了 ...
- CLion 使用笔记(三)
我已经在博客里面发布了好几篇 CLion 使用笔记了,没追究这是第几篇,姑且算作第三篇. 我的 CLion 是搭配了 MSYS2 和 Conan 使用的.MSYS2 提供 C++ toolchain. ...
- BZOJ2806 [Ctsc2012]Cheat 【后缀自动机 + 二分 + 单调队列优化DP】
题目 输入格式 第一行两个整数N,M表示待检查的作文数量,和小强的标准作文库 的行数 接下来M行的01串,表示标准作文库 接下来N行的01串,表示N篇作文 输出格式 N行,每行一个整数,表示这篇作文的 ...
- HDR 高动态范围图像
以下来源于百度百科: 高动态范围图像(High-Dynamic Range,简称HDR),相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-Dynamic Rang ...
- react 基础语法复习2- react入门以及JSX
引入 react 以及 ReactDom import React from 'react'; import ReactDOM from 'react-dom'; 将react组件渲染到真实dom节点 ...
- 【02】 Vue 之 数据绑定
2.1. 什么是双向绑定? Vue框架很核心的功能就是双向的数据绑定. 双向是指:HTML标签数据 绑定到 Vue对象,另外反方向数据也是绑定的.通俗点说就是,Vue对象的改变会直接影响到HTML的标 ...
- (三)Spring 依赖注入
一.Spring框架本身有四大原则: 使用POJO进行轻量级和最小侵入式开发. 通过依赖注入和接口变成实现松耦合. 通过AOP和默认习惯进行声明式变成. 使用AOP和模板减少模式化代码. Spring ...