- 浏览: 1061274 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (501)
- dwr (6)
- javascript (84)
- oracle (66)
- jsp/servlet (18)
- ant (3)
- 基础知识 (12)
- EXT (10)
- My SQL (10)
- java (71)
- spring (37)
- 学习的对象 (2)
- Linux (24)
- 面试 (1)
- HTML/CSS (11)
- tomcat (11)
- 收藏夹 (2)
- Power Designer (2)
- struts.xml配置文件 (1)
- sturts2 (3)
- myeclipse (8)
- eclipse (7)
- Maven (34)
- SVN (3)
- SAP JCO (2)
- JBOSS (11)
- webservice (8)
- word (1)
- 敏捷开发 (1)
- sybase (4)
- Nexus (3)
- EhCache (3)
- log4j (3)
- Cookie (4)
- Session (4)
- CXF (7)
- AXIS (2)
- SSO (1)
- LDAP (1)
- velocity (2)
- Jquery (5)
- redis (2)
- http (4)
- dojo (1)
- Linux资源监控软件mnon的安装与运用 (1)
- notepad++ (1)
- EA (1)
- UML (1)
- JasperReports (1)
- 权限 (0)
- freemarker (4)
- Spring MVC (1)
- JMS (1)
- activeMQ (1)
- hession (3)
- 安全 (1)
- ibatis (2)
- log (1)
- nginx (1)
最新评论
-
winhbb:
我刚好遇到了一个问题(在可以依赖注入的场合有效):有两个模块A ...
解决Maven项目相互依赖/循环依赖/双向依赖的问题 -
nanjiwubing123:
long3ok 写道你好 XmlOutputFormatter ...
用XStream转换复杂XML -
zhoujianboy:
另外一个方法实现eclipse tomcat 热部署:http ...
eclipse下实现maven项目在tomcat容器热部署方法 -
long3ok:
你好 XmlOutputFormatter 请问这个类是在什么 ...
用XStream转换复杂XML -
ganbo:
总结的好,文章给力。
解决Maven项目相互依赖/循环依赖/双向依赖的问题
介绍4款json的java类库 及 其性能测试
转载链接:http://www.cnblogs.com/windlaughing/p/3241776.html
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。
下面介绍四款处理json的java类库:Json-lib、Gson、Jackson、Fastjson
一、Json-lib
JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans. 官网:http://json-lib.sourceforge.net/
maven依赖配置:
二、Gson
Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.
官网:https://code.google.com/p/google-gson/
三、Jackson
Jackson is a high-performance JSON processor (parser, generator)。官网:http://jackson.codehaus.org/Home
四、FastJson
Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。网址:https://github.com/alibaba/fastjson
五、性能测试
1、Java对象序列化为Json字符串:
执行100 0000次转换,各个类库的耗时如下:(以秒为单位)
Gson 48.891s
Json-lib 311.446s
Jackson 19.439s
FastJson 21.706
2、Json字符串 反序列化为Java对象
执行100 0000次转换,各个类库的耗时如下:(以秒为单位)
Gson 39.280s
Json-lib 使用该类库的方法进行转换时(测试代码见下面),抛出异常。其原因是Person类的属性:List<Person> friends,其List中的对象不是Person类型的对象,而是net.sf.ezmorph.bean.MorphDynaBean类型的对象。说明,Json-lib对嵌套的自定义类支持的很差,或许是我写的方法有问题。
Jackson 26.427s
FastJson 40.556
3、总结:
Java Bean序列化为Json,性能:Jackson > FastJson > Gson > Json-lib。这4中类库的序列化结构都正确。
Json字符串反序列化为Java Bean时,性能:Jackson > Gson > FastJson >Json-lib。并且Jackson、Gson、FastJson可以很好的支持复杂的嵌套结构定义的类,而Json-lib对于复制的反序列化会出错。
Jackson、FastJson、Gson类库各有优点,各有自己的专长,都具有很高的可用性。
4、测试用例
1)Java Bean
复制代码
public class Person {
private String name;
private FullName fullName;
private int age;
private Date birthday;
private List<String> hobbies;
private Map<String, String> clothes;
private List<Person> friends;
//getter setter 方法。略
@Override
public String toString() {
String str= "Person [name=" + name + ", fullName=" + fullName + ", age="
+ age + ", birthday=" + birthday + ", hobbies=" + hobbies
+ ", clothes=" + clothes + "]\n";
if(friends!=null){
str+="Friends:\n";
for (Person f : friends) {
str+="\t"+f;
}
}
return str;
}
}
class FullName {
private String firstName;
private String middleName;
private String lastName;
//构造方法、getter setter 方法,略
@Override
public String toString() {
return "[firstName=" + firstName + ", middleName="
+ middleName + ", lastName=" + lastName + "]";
}
}
复制代码
2)Json-lib、Gson、Jackson、FastJson类库:
复制代码
import net.sf.json.JSONObject;
public class JsonObjectUtil {
public static String bean2Json(Object obj){
JSONObject jsonObject=JSONObject.fromObject(obj);
return jsonObject.toString();
}
@SuppressWarnings("unchecked")
public static <T> T json2Bean(String jsonStr,Class<T> objClass){
return (T)JSONObject.toBean(JSONObject.fromObject(jsonStr), objClass);
}
}
复制代码
复制代码
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
public class GsonUtil {
private static Gson gson = new GsonBuilder().create();
public static String bean2Json(Object obj){
return gson.toJson(obj);
}
public static <T> T json2Bean(String jsonStr,Class<T> objClass){
return gson.fromJson(jsonStr, objClass);
}
public static String jsonFormatter(String uglyJsonStr){
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(uglyJsonStr);
String prettyJsonString = gson.toJson(je);
return prettyJsonString;
}
}
复制代码
复制代码
import java.io.IOException;
import java.io.StringWriter;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonUtil {
private static ObjectMapper mapper = new ObjectMapper();
public static String bean2Json(Object obj) throws IOException {
StringWriter sw = new StringWriter();
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
mapper.writeValue(gen, obj);
gen.close();
return sw.toString();
}
public static <T> T json2Bean(String jsonStr, Class<T> objClass)
throws JsonParseException, JsonMappingException, IOException {
return mapper.readValue(jsonStr, objClass);
}
}
复制代码
复制代码
public class FastJsonUtil {
public static String bean2Json(Object obj){
return JSON.toJSONString(obj);
}
public static <T> T json2Bean(String jsonStr,Class<T> objClass){
return JSON.parseObject(jsonStr, objClass);
}
}
复制代码
3)Java对象序列化为Json字符串 测试类:
复制代码
public class TestBean2Json {
private Person p;
private Person createAPerson(String name,List<Person> friends) {
Person newPerson=new Person();
newPerson.setName(name);
newPerson.setFullName(new FullName("xxx_first", "xxx_middle", "xxx_last"));
newPerson.setAge(24);
List<String> hobbies=new ArrayList<String>();
hobbies.add("篮球");
hobbies.add("游泳");
hobbies.add("coding");
newPerson.setHobbies(hobbies);
Map<String,String> clothes=new HashMap<String, String>();
clothes.put("coat", "Nike");
clothes.put("trousers", "adidas");
clothes.put("shoes", "安踏");
newPerson.setClothes(clothes);
newPerson.setFriends(friends);
return newPerson;
}
@Before
public void init(){
List<Person> friends=new ArrayList<Person>();
friends.add(createAPerson("小明",null));
friends.add(createAPerson("Tony",null));
friends.add(createAPerson("陈小二",null));
p=createAPerson("邵同学",friends);
}
// @Test
public void testGsonBean2Json(){
System.out.println(GsonUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
GsonUtil.bean2Json(p);
}
}
//@Test
public void testJsonObjectBean2Json(){
System.out.println(JsonlibUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
JsonlibUtil.bean2Json(p);
}
}
// @Test
public void testJacksonBean2Json() throws Exception{
System.out.println(JacksonUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
JacksonUtil.bean2Json(p);
}
}
@Test
public void testFastJsonBean2Json() throws Exception{
System.out.println(FastJsonUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
FastJsonUtil.bean2Json(p);
}
}
}
复制代码
4)Json字符串 反序列化为Java对象 测试类:
复制代码
public class TestJson2Bean {
private String jsonStr;
@Before
public void init(){
jsonStr="{\"name\":\"邵同学\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":[{\"name\":\"小明\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":null},{\"name\":\"Tony\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":null},{\"name\":\"陈小二\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":null}]}";
}
// @Test
public void testGsonjson2Bean() throws Exception{
Person pp=GsonUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
GsonUtil.json2Bean(jsonStr, Person.class);
}
}
// @Test
public void testJsonlibJson2Bean() throws Exception{
Person pp=JsonlibUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
JsonlibUtil.json2Bean(jsonStr, Person.class);
}
}
// @Test
public void testJacksonJson2Bean() throws Exception{
Person pp=JacksonUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
JacksonUtil.json2Bean(jsonStr, Person.class);
}
}
@Test
public void testFastJsonJson2Bean() throws Exception{
Person pp=FastJsonUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
FastJsonUtil.json2Bean(jsonStr, Person.class);
}
}
}
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。
下面介绍四款处理json的java类库:Json-lib、Gson、Jackson、Fastjson
一、Json-lib
JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans. 官网:http://json-lib.sourceforge.net/
maven依赖配置:
复制代码 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> 复制代码 示例: 复制代码 /** * 将对象序列化成json字符串 * @param obj * @return */ public static String bean2Json(Object obj){ JSONObject jsonObject=JSONObject.fromObject(obj); return jsonObject.toString(); } /** * 将json字符串反序列化为对象 * @param jsonStr * @param objClass 反序列化为该类的对象 * @return */ @SuppressWarnings("unchecked") public static <T> T json2Bean(String jsonStr,Class<T> objClass){ return (T)JSONObject.toBean(JSONObject.fromObject(jsonStr), objClass); } 复制代码
二、Gson
Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.
官网:https://code.google.com/p/google-gson/
maven依赖: <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.4</version> </dependency> 示例: 复制代码 public static String bean2Json(Object obj){ Gson gson = new GsonBuilder().create(); return gson.toJson(obj); } public static <T> T json2Bean(String jsonStr,Class<T> objClass){ Gson gson = new GsonBuilder().create(); return gson.fromJson(jsonStr, objClass); } /** * 把混乱的json字符串整理成缩进的json字符串 * @param uglyJsonStr * @return */ public static String jsonFormatter(String uglyJsonStr){ Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonParser jp = new JsonParser(); JsonElement je = jp.parse(uglyJsonStr); String prettyJsonString = gson.toJson(je); return prettyJsonString; } 复制代码
三、Jackson
Jackson is a high-performance JSON processor (parser, generator)。官网:http://jackson.codehaus.org/Home
maven依赖: <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> 示例: 复制代码 public static String bean2Json(Object obj) throws IOException { ObjectMapper mapper = new ObjectMapper(); StringWriter sw = new StringWriter(); JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); mapper.writeValue(gen, obj); gen.close(); return sw.toString(); } public static <T> T json2Bean(String jsonStr, Class<T> objClass) throws JsonParseException, JsonMappingException, IOException { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(jsonStr, objClass); } 复制代码
四、FastJson
Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。网址:https://github.com/alibaba/fastjson
maven依赖配置: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.35</version> </dependency> 示例: 复制代码 public static String bean2Json(Object obj){ return JSON.toJSONString(obj); } public static <T> T json2Bean(String jsonStr,Class<T> objClass){ return JSON.parseObject(jsonStr, objClass); } 复制代码
五、性能测试
1、Java对象序列化为Json字符串:
执行100 0000次转换,各个类库的耗时如下:(以秒为单位)
Gson 48.891s
Json-lib 311.446s
Jackson 19.439s
FastJson 21.706
2、Json字符串 反序列化为Java对象
执行100 0000次转换,各个类库的耗时如下:(以秒为单位)
Gson 39.280s
Json-lib 使用该类库的方法进行转换时(测试代码见下面),抛出异常。其原因是Person类的属性:List<Person> friends,其List中的对象不是Person类型的对象,而是net.sf.ezmorph.bean.MorphDynaBean类型的对象。说明,Json-lib对嵌套的自定义类支持的很差,或许是我写的方法有问题。
Jackson 26.427s
FastJson 40.556
3、总结:
Java Bean序列化为Json,性能:Jackson > FastJson > Gson > Json-lib。这4中类库的序列化结构都正确。
Json字符串反序列化为Java Bean时,性能:Jackson > Gson > FastJson >Json-lib。并且Jackson、Gson、FastJson可以很好的支持复杂的嵌套结构定义的类,而Json-lib对于复制的反序列化会出错。
Jackson、FastJson、Gson类库各有优点,各有自己的专长,都具有很高的可用性。
4、测试用例
1)Java Bean
复制代码
public class Person {
private String name;
private FullName fullName;
private int age;
private Date birthday;
private List<String> hobbies;
private Map<String, String> clothes;
private List<Person> friends;
//getter setter 方法。略
@Override
public String toString() {
String str= "Person [name=" + name + ", fullName=" + fullName + ", age="
+ age + ", birthday=" + birthday + ", hobbies=" + hobbies
+ ", clothes=" + clothes + "]\n";
if(friends!=null){
str+="Friends:\n";
for (Person f : friends) {
str+="\t"+f;
}
}
return str;
}
}
class FullName {
private String firstName;
private String middleName;
private String lastName;
//构造方法、getter setter 方法,略
@Override
public String toString() {
return "[firstName=" + firstName + ", middleName="
+ middleName + ", lastName=" + lastName + "]";
}
}
复制代码
2)Json-lib、Gson、Jackson、FastJson类库:
复制代码
import net.sf.json.JSONObject;
public class JsonObjectUtil {
public static String bean2Json(Object obj){
JSONObject jsonObject=JSONObject.fromObject(obj);
return jsonObject.toString();
}
@SuppressWarnings("unchecked")
public static <T> T json2Bean(String jsonStr,Class<T> objClass){
return (T)JSONObject.toBean(JSONObject.fromObject(jsonStr), objClass);
}
}
复制代码
复制代码
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
public class GsonUtil {
private static Gson gson = new GsonBuilder().create();
public static String bean2Json(Object obj){
return gson.toJson(obj);
}
public static <T> T json2Bean(String jsonStr,Class<T> objClass){
return gson.fromJson(jsonStr, objClass);
}
public static String jsonFormatter(String uglyJsonStr){
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(uglyJsonStr);
String prettyJsonString = gson.toJson(je);
return prettyJsonString;
}
}
复制代码
复制代码
import java.io.IOException;
import java.io.StringWriter;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonUtil {
private static ObjectMapper mapper = new ObjectMapper();
public static String bean2Json(Object obj) throws IOException {
StringWriter sw = new StringWriter();
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
mapper.writeValue(gen, obj);
gen.close();
return sw.toString();
}
public static <T> T json2Bean(String jsonStr, Class<T> objClass)
throws JsonParseException, JsonMappingException, IOException {
return mapper.readValue(jsonStr, objClass);
}
}
复制代码
复制代码
public class FastJsonUtil {
public static String bean2Json(Object obj){
return JSON.toJSONString(obj);
}
public static <T> T json2Bean(String jsonStr,Class<T> objClass){
return JSON.parseObject(jsonStr, objClass);
}
}
复制代码
3)Java对象序列化为Json字符串 测试类:
复制代码
public class TestBean2Json {
private Person p;
private Person createAPerson(String name,List<Person> friends) {
Person newPerson=new Person();
newPerson.setName(name);
newPerson.setFullName(new FullName("xxx_first", "xxx_middle", "xxx_last"));
newPerson.setAge(24);
List<String> hobbies=new ArrayList<String>();
hobbies.add("篮球");
hobbies.add("游泳");
hobbies.add("coding");
newPerson.setHobbies(hobbies);
Map<String,String> clothes=new HashMap<String, String>();
clothes.put("coat", "Nike");
clothes.put("trousers", "adidas");
clothes.put("shoes", "安踏");
newPerson.setClothes(clothes);
newPerson.setFriends(friends);
return newPerson;
}
@Before
public void init(){
List<Person> friends=new ArrayList<Person>();
friends.add(createAPerson("小明",null));
friends.add(createAPerson("Tony",null));
friends.add(createAPerson("陈小二",null));
p=createAPerson("邵同学",friends);
}
// @Test
public void testGsonBean2Json(){
System.out.println(GsonUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
GsonUtil.bean2Json(p);
}
}
//@Test
public void testJsonObjectBean2Json(){
System.out.println(JsonlibUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
JsonlibUtil.bean2Json(p);
}
}
// @Test
public void testJacksonBean2Json() throws Exception{
System.out.println(JacksonUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
JacksonUtil.bean2Json(p);
}
}
@Test
public void testFastJsonBean2Json() throws Exception{
System.out.println(FastJsonUtil.bean2Json(p));
for (int i = 0; i < 1000000; i++) {
FastJsonUtil.bean2Json(p);
}
}
}
复制代码
4)Json字符串 反序列化为Java对象 测试类:
复制代码
public class TestJson2Bean {
private String jsonStr;
@Before
public void init(){
jsonStr="{\"name\":\"邵同学\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":[{\"name\":\"小明\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":null},{\"name\":\"Tony\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":null},{\"name\":\"陈小二\",\"fullName\":{\"firstName\":\"xxx_first\",\"middleName\":\"xxx_middle\",\"lastName\":\"xxx_last\"},\"age\":24,\"birthday\":null,\"hobbies\":[\"篮球\",\"游泳\",\"coding\"],\"clothes\":{\"shoes\":\"安踏\",\"trousers\":\"adidas\",\"coat\":\"Nike\"},\"friends\":null}]}";
}
// @Test
public void testGsonjson2Bean() throws Exception{
Person pp=GsonUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
GsonUtil.json2Bean(jsonStr, Person.class);
}
}
// @Test
public void testJsonlibJson2Bean() throws Exception{
Person pp=JsonlibUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
JsonlibUtil.json2Bean(jsonStr, Person.class);
}
}
// @Test
public void testJacksonJson2Bean() throws Exception{
Person pp=JacksonUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
JacksonUtil.json2Bean(jsonStr, Person.class);
}
}
@Test
public void testFastJsonJson2Bean() throws Exception{
Person pp=FastJsonUtil.json2Bean(jsonStr, Person.class);
System.out.println(pp);
for (int i = 0; i < 1000000; i++) {
FastJsonUtil.json2Bean(jsonStr, Person.class);
}
}
}
相关推荐
iOS版微信抢红包Tweak.zip小程序
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
基于springboot社区停车信息管理系统.zip
基于springboot南皮站化验室管理系统源码数据库文档.zip
## 数据指标说明 全要素生产率(TFP)也可以称之为系统生产率。指生产单位(主要为企业)作为系统中的各个要素的综合生产率,以区别于要素生产率(如技术生产率)。测算公式为:全要素生产率=产出总量/全部资源投入量。 数据测算:包含OL、FE、LP、OP、GMM共五种TFP测算方法!数据结果包括excel和dta格式,其中重要指标包括证券代码,固定资产净额,营业总收入,营业收入,营业成本,销售费用,管理费用,财务费用,购建固定资产无形资产和其他长期资产支付的现金,支付给职工以及为职工支付的现金,员工人数,折旧摊销,行业代码,上市日期,AB股交叉码,退市日期,年末是否ST或PT等变量指标分析。文件包括计算方法说明及原始数据和代码。 数据名称:上市公司全要素生产率TFP数据及测算方法(OL、FE、LP、OP、GMM) 数据年份:2000-2023年 数据指标:证券代码、year、TFP_OLS、TFP_FE、TFP_LP1、TFP_OP、TFP_OPacf、TFP_GMM
内容概要:本文详细总结了多种编程语言下常用的算法实现资源,涵盖Python、C++、Java等流行编程语言及其相关的开源平台、在线课程和权威书籍。对于每种语言而言,均提供了具体资源列表,包括开源项目、标准库支持、在线课程及专业书籍推荐。 适合人群:适用于所有希望深入研究并提高特定编程语言算法能力的学习者,无论是编程新手还是有一定经验的技术人员。 使用场景及目标:帮助开发者快速定位到合适的算法学习资料,无论是出于个人兴趣自学、面试准备或是实际工作中遇到的具体算法问题,都能找到合适的解决方案。 其他说明:文中提及多个在线学习平台和社区网站,不仅限于某一特定语言,对于跨学科或多元化技能培养也具有很高的参考价值。
基于springboot的交通旅游订票系统源码数据库文档.zip
内容概要:本文档是一份详细的GO语言教程,涵盖了Go语言的基础语法、数据类型、控制结构、函数、结构体、接口以及并发编程等多个方面。主要内容包括Go语言的基本概念和历史背景、环境配置、基本语法(如变量、数据类型、控制结构)、函数定义与调用、高级特性(如闭包、可变参数)、自定义数据类型(如结构体、接口)以及并发编程(如goroutine、channel、select)等内容。每部分内容都附有具体的代码示例,帮助读者理解和掌握相关知识点。 适合人群:具备一定编程基础的开发者,尤其是希望深入学习和应用Go语言的技术人员。 使用场景及目标:①初学者通过本教程快速入门Go语言;②有一定经验的开发者系统复习和完善Go语言知识;③实际项目开发中利用Go语言解决高性能、高并发的编程问题。 阅读建议:本文档全面介绍了Go语言的各项基础知识和技术细节,建议按章节顺序逐步学习,通过动手实践代码示例加深理解。对于复杂的概念和技术点,可以通过查阅更多资料或进行深入研究来巩固知识。
GEE训练教程
memcached笔记资料,配套视频:https://www.bilibili.com/list/474327672?sid=4486766&spm_id_from=333.999.0.0&desc=1
基于springboot校内跑腿业务系统源码数据库文档.zip
计算机控制光感自动窗帘控制系统设计.doc
基于SpringBoot的校园服务系统源码数据库文档.zip
基于SpringBoot+Vue的美容店信息管理系统源码数据库文档.zip
基于springboot程序设计基础课程辅助教学系统源码数据库文档.zip
这是一个原生的JS网页版斗地主小游戏,代码注释全。带有斗地主游戏基本的地主、选牌、提示、出牌、倒计时等功能。简单好玩,欢迎下载
基于springboot亚运会志愿者管理系统源码数据库文档.zip
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
GEE训练教程——Landsat5、8和Sentinel-2、DEM和各2哦想指数下载
基于springboot家校合作平台源码数据库文档.zip