Jackson库的ObjectMapper类在was6linux环境安装was7上找不到部分方法

Jackson ObjectMapper类使用解析 - 随风破浪 - 博客园
Jackson ObjectMapper类
//ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。
//以下是org.codehaus.jackson.map.ObjectMapper类的声明:
public class ObjectMapper
extends ObjectCodec
implements Versioned
// 演示实例:
import java.io.IOE
import org.codehaus.jackson.JsonParseE
import org.codehaus.jackson.map.JsonMappingE
import org.codehaus.jackson.map.ObjectM
import org.codehaus.jackson.map.SerializationC
public class JacksonTester {
public static void main(String args[]){
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
//map json to student
Student student = mapper.readValue(jsonString, Student.class);
System.out.println(student);
mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);
//把对象转成json string类型的
jsonString = mapper.writeValueAsString(student);
System.out.println(jsonString);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
class Student {
private int
public Student(){}
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
public String toString(){
return "Student [ name: "+name+", age: "+ age+ " ]";
//输出结果
Student [ name: Mahesh, age: 21 ]
"name" : "Mahesh",
"age" : 21博客分类:
前两篇文章咱们一起学习了一下,Jackson的基本使用方法还记得第一篇文章我获得一个ObjectMapper对象整得那么麻烦
。还用用单例模式来获取为什么不直接new?先看一个数据吧。
我把咱们第二篇文章里面的TestVo转换成JsonCommonUtil.getMapperInstance(false);方式执行5次
平均耗时为210毫秒,把false改成true以后9991.6毫秒
这里我不是想测试它的性能(后面我会写一篇专门测试几种JSON类库性能的文章届时应该会涉及到json-lib
,Gson……等常用类库
),我的机器也不给力。我主要是想说明的是每次new ObjectMapper() 和 全局使用一个 性能上相差了 大概
倍。在这个时间就是金钱的世界47倍是什么概念,一个系统得转换多少次啊!
那大家可能说了你直接全局唯一是的,何必浪费时间来写一篇文章呢。别急,我来给大家解释一下!毕竟它是全局的那么在多线程情况下,并发情况下 它会是什么情况呢?会不会弄乱我们的数据?数据是万万不能乱的,你有1000W存款银行系统乱了一下 给你少个0
你会哭的很有节奏!
接下来看下jackson官方文当对ObjectMaper的解释:Jackson's org.codehaus.jackson.map.ObjectMapper
"just works" for mapping JSON data into plain old Java objects ("POJOs").引自:http://wiki.fasterxml.co/JacksonInFiveMinutes
ObjectMapper mapper = new ObjectMapper();//can reuse,share globally
卖弄一下我可怜的英语:
ObjectMapper 只用作把Json映射到PoJo
,可用在全局重用。
既然人家说了只是把Json映射到PoJo 可以全局使用,那咱们还有必要研究吗?我感觉有必要!因为我现在不知道他是否是线程安全的,毕竟数据第一。那么接下来咱们就一起测试一下极端情况下他是否是线程安全的。
我的测试思路是这样的:可以使用多个线程 线程1Mapper已经映射某一个实体的时候让线程一sleep 然后线程二执行。看看线程2转换的结果是否正确,虽然有点不准确但是也能大概看出来是否是线程安全的。因为代码太多目前正在整理,等整理完毕我贴上代码。
浏览: 11109 次
来自: 徐州
兄弟,研究出来jackson是线程安全的了么?尤其是Objec ...
不知楼主没有么有遇到从JavaBean转化为json的时候 第 ...
楼主,我想请教下:如何实现类似 JSON字符串与List&lt ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
本地也是was6环境 可以正确运行, 发布到测试环境后,ObjectMapper类 报错找不到部分方法,我用反射打印方法和对应参数,结果,环境上比本地 要少输出10多个方法,百思不得其解。。。用的是这个版本jackson-all-1.9.11.jar
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
建议仔细对比下2个环境下jar包的不同,看看是不是有其他版本的json包,是否存在冲突
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:举例讲解Java的Jackson库中ObjectMapper类的使用
投稿:goldensun
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了举例讲解Java的Jackson库中ObjectMapper类的使用,Jackson库通常被用来实现Java的对象和JSON之间的转换功能,需要的朋友可以参考下
ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。
以下是org.codehaus.jackson.map.ObjectMapper类的声明:
public class ObjectMapper
extends ObjectCodec
implements Versioned
static class ObjectMapper.DefaultTypeResolverBuilder//定制TypeResolverBuilder,提供所谓的“默认输入”使用类型解析构建器(见enableDefaultTyping()了解详细信息)。
static class ObjectMapper.DefaultTyping//使用enableDefaultTyping()枚举指定什么样的类型(类)默认输入应该使用。
构造函数 & 描述
ObjectMapper()//默认的构造函数,这将构建默认JsonFactory必要时使用StdSerializerProvider作为其SerializerProvider,并BeanSerializerFactory作为其SerializerFactory。
ObjectMapper(JsonFactory jf)//构造使用指定的JsonFactory构建必要的JsonParsers和/或JsonGenerators映射。
ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)
ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp, SerializationConfig sconfig, DeserializationConfig dconfig)
ObjectMapper(SerializerFactory sf) 不推荐使用。使用其他构造来代替; 注意,可以设置序列化工厂setSerializerFactory(org.codehaus.jackson.map.SerializerFactory)
这个类继承了以下类方法:
java.lang.Object
测试类基本代码如下
* @project java
* @package
* @file Jackson.java
* @version 1.0
public class Jackson {
* Class Descripton goes here.
* @class Jackson
* @version 1.0
public static JsonGenerator jsonGenerator =
private static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) {
Student student = new Student();
student.setIsstudent(true);
student.setUid(1000);
student.setUname("xiao liao");
student.setUpwd("123");
student.setNumber(12);
Map&String, Student& stuMap = new HashMap&String, Student&();
stuMap.put("1", student);
stuMap.put("2", student);
List&Object& stuList = new ArrayList&Object&();
List&Student& stuList1 = new ArrayList&Student&();
stuList1.add(student);
student= new Student();
student.setIsstudent(false);
student.setUid(200);
student.setUname("xiao mi");
stuList1.add(student);
stuList.add(student);
stuList.add("xiao xin");
stuList.add("xiao er");
stuList.add(stuMap);
//readJson2List();
//readJson2Array();
//writeArray2Json(array);
//writeJson2List();
//writeEntity2Json(student);
writeJson2Entity();
//writeMap2Json(stuMap);
//writeList2Json(stuList1);
} catch (IOException e) {
e.printStackTrace();
* &code&writeEntity2Json&/code&
* @description: TODO(实体类转换成json)
* @param object
* @throws IOException
public static void writeEntity2Json(Object object) throws IOException {
mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt"),object );
mapper.writeValue( System.out,object );
* &code&writeArray2Json&/code&
* @description: TODO(数组转换成json数组)
* @param object
* @throws IOException
public static void writeArray2Json(Object object) throws IOException {
// writeValue具有和writeObject相同的功能
mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt"),object );
mapper.writeValue(System.out,object );
* &code&writeMap2Json&/code&
* @description: TODO(map对象转换成json对象)
* @param object
* @throws IOException
public static void writeMap2Json(Object object) throws IOException {
System.out.println("使用ObjectMapper-----------");
// writeValue具有和writeObject相同的功能
System.out.println("==&"+mapper.writeValueAsString(object));
mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aamap.txt"),object );
mapper.writeValue( System.out , object );
* &code&writeList2Json&/code&
* @description: TODO(list转换成json)
* @param object
* @throws IOException
public static void writeList2Json(Object object) throws IOException {
System.out.println("==&"+mapper.writeValueAsString(object));
mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aamap.txt"),object );
mapper.writeValue( System.out , object );
* &code&writeJson2Entity&/code&
* @description: TODO(json转换成实体)
* @throws IOException
public static void writeJson2Entity() throws IOException {
System.out.println("json串转换成entity-------------");
File file = new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt");
FileInputStream inputStream = new FileInputStream(file);
Student student = mapper.readValue(inputStream,Student.class);
System.out.println(student.toString());
//漂亮输出
//mapper.defaultPrettyPrintingWriter().writeValueAsString(value);
String json = "{\"uid\":1000,\"uname\":\"xiao liao\",\"upwd\":\"123\",\"number\":12.0,\"isstudent\":true}";
Student student1 = mapper.readValue(json,Student.class);
System.out.println("json2:"+student1.toString());
* &code&writeJson2List&/code&
* @description: TODO(json专程list对象)
* @throws IOException
public static void writeJson2List() throws IOException {
System.out.println("json串转换成entity-------------");
File file = new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt");
FileInputStream inputStream = new FileInputStream(file);
Student student = mapper.readValue(inputStream,Student.class);
System.out.println(student.toString());
String json = "[{\"uid\":1000,\"uname\":\"xiao liao\",\"upwd\":\"123\",\"number\":12.0,\"isstudent\":true},{\"uid\":200,\"uname\":\"xiao mi\",\"upwd\":null,\"number\":0.0,\"isstudent\":false}]";
List&LinkedHashMap&String, Object&& s= mapper.readValue(json,List.class);
for (int i = 0; i & s.size(); i++) {
LinkedHashMap&String, Object& link = s.get(i);
Set&String& key = link.keySet();
for (Iterator iterator = key.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string+"==&"+link.get(string));
System.out.println("json:"+i+""+s.get(i).toString());
* JSON转换为List对象
public static void readJson2List() {
String json = "[{\"uid\":1,\"uname\":\"www\",\"number\":234,\"upwd\":\"456\"},"
+ "{\"uid\":5,\"uname\":\"tom\",\"number\":3.44,\"upwd\":\"123\"}]";
List&LinkedHashMap&String, Object&& list = mapper.readValue(
json, List.class);
System.out.println(list.size());
for (int i = 0; i & list.size(); i++) {
Map&String, Object& map = list.get(i);
Set&String& set = map.keySet();
for (Iterator&String& it = set.iterator(); it.hasNext();) {
String key = it.next();
System.out.println(key + ":" + map.get(key));
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
* JSON转换为List对象
public static void readJson2Array() {
String json = "[{\"uid\":1,\"uname\":\"www\",\"number\":234,\"upwd\":\"456\"},"
+ "{\"uid\":5,\"uname\":\"tom\",\"number\":3.44,\"upwd\":\"123\"}]";
Student[] students = mapper.readValue(json, Student[].class);
for (Student student : students) {
System.out.println("&"+student.toString());
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
打印结果 :
串转换成entity-------------
json2:uid=1000,name=xiao liao,upwd=123,number=12.0,isStudent=true
writeMap2Json -----------
{"2":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},"1":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}}
readJson2Array------------------
&uid=1,name=www,upwd=456,number=234.0,isStudent=false
&uid=5,name=tom,upwd=123,number=3.44,isStudent=false
writeMap2Json -----------
{"2":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},"1":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}}
大家逐个自己试试吧& ,上面也是我的测试代码
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 linux环境下was7安装 的文章

 

随机推荐