package org.frameworkset.json;
import java.io.File;
import java.io.OutputStream;
import java.io.Writer;
import java.lang.reflect.Type;
import org.codehaus.jackson.JsonParser.Feature;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public class Jackson1ObjectMapper implements JacksonObjectMapper {
ObjectMapper mapper = new ObjectMapper();
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#json2Object(java.lang.String, java.lang.Class)
*/
@Override
public <T> T json2Object(String jsonString,Class<T> toclass) {
// TODO Auto-generated method stub
return json2Object(jsonString,toclass,true);
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#json2Object(java.lang.String, java.lang.Class, boolean)
*/
@Override
public <T> T json2Object(String jsonString,Class<T> toclass,boolean ALLOW_SINGLE_QUOTES) {
// TODO Auto-generated method stub
// String jsonString = "[{'from_date':'2001-09-21','to_date':'2011-04-02','company':'人寿保险','department':'xxx','position':'主管' },{'from_date':'0002-12-01','to_date':'2011-04-02', 'company':'人寿保险','department':'xxx','position':'主管' }]";
// ObjectMapper mapper = new ObjectMapper();
// mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
T value = mapper.readValue(jsonString, toclass);
return value;
} catch (Exception e) {
throw new IllegalArgumentException(jsonString,e);
}
}
// public <T> T json2Object(String jsonString,TypeReference<T> ref) {
// return json2Object(jsonString,ref,true);
//
//
// }
//
public <T> T json2ObjectWithType(String jsonString,final JsonTypeReference<T> ref,boolean ALLOW_SINGLE_QUOTES) {
// TODO Auto-generated method stub
// String jsonString = "[{'from_date':'2001-09-21','to_date':'2011-04-02','company':'人寿保险','department':'xxx','position':'主管' },{'from_date':'0002-12-01','to_date':'2011-04-02', 'company':'人寿保险','department':'xxx','position':'主管' }]";
ObjectMapper mapper = new ObjectMapper();
TypeReference<?> ref_ = new TypeReference<Object>(){
@Override
public Type getType() {
// TODO Auto-generated method stub
return ref.getType();
}
};
//(TypeReference)ref.getTypeReference();
mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
T value = mapper.readValue(jsonString, ref_);
return value;
} catch (Exception e) {
throw new IllegalArgumentException(jsonString,e);
}
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object)
*/
@Override
public String object2json(Object object) {
return object2json(object,true) ;
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, boolean)
*/
@Override
public String object2json(Object object,boolean ALLOW_SINGLE_QUOTES) {
// ObjectMapper mapper = new ObjectMapper();
// mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
String value = mapper.writeValueAsString(object);
return value;
} catch (Exception e) {
throw new IllegalArgumentException("错误的json序列化操作",e);
}
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, java.io.File)
*/
@Override
public void object2json(Object object,File writer) {
object2json(object,writer,true) ;
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, java.io.File, boolean)
*/
@Override
public void object2json(Object object,File writer,boolean ALLOW_SINGLE_QUOTES) {
// ObjectMapper mapper = new ObjectMapper();
// mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
mapper.writeValue(writer,object);
} catch (Exception e) {
throw new IllegalArgumentException("错误的json序列化操作",e);
}
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, java.io.OutputStream)
*/
@Override
public void object2json(Object object,OutputStream writer) {
object2json(object,writer,true) ;
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, java.io.OutputStream, boolean)
*/
@Override
public void object2json(Object object,OutputStream writer,boolean ALLOW_SINGLE_QUOTES) {
// ObjectMapper mapper = new ObjectMapper();
// mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
mapper.writeValue(writer,object);
} catch (Exception e) {
throw new IllegalArgumentException("错误的json序列化操作",e);
}
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, java.io.Writer)
*/
@Override
public void object2json(Object object,Writer writer) {
object2json(object,writer,true) ;
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2json(java.lang.Object, java.io.Writer, boolean)
*/
@Override
public void object2json(Object object,Writer writer,boolean ALLOW_SINGLE_QUOTES) {
// ObjectMapper mapper = new ObjectMapper();
// mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
mapper.writeValue(writer,object);
} catch (Exception e) {
throw new IllegalArgumentException("错误的json序列化操作",e);
}
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2jsonAsbyte(java.lang.Object)
*/
@Override
public byte[] object2jsonAsbyte(Object object) {
return object2jsonAsbyte(object,true) ;
}
/* (non-Javadoc)
* @see org.frameworkset.json.JacksonObjectMapper#object2jsonAsbyte(java.lang.Object, boolean)
*/
@Override
public byte[] object2jsonAsbyte(Object object,boolean ALLOW_SINGLE_QUOTES) {
// ObjectMapper mapper = new ObjectMapper();
// mapper.configure(Feature.ALLOW_SINGLE_QUOTES, ALLOW_SINGLE_QUOTES);
try {
return mapper.writeValueAsBytes(object);
} catch (Exception e) {
throw new IllegalArgumentException("错误的json序列化操作",e);
}
}
}