首页 > 编程语言 >jackson将java对象转换为json字符串

jackson将java对象转换为json字符串

时间:2023-04-23 11:39:06浏览次数:52  
标签:jackson String age json import java public name


1.1.  下载jackson

Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。

下载地址: http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar

1.2.  Java对象转换为json

Person.java

package jackson;
 
import java.io.Serializable;
 
public  class Person implements Serializable{
 
/**
     * 
     */
    private  static final  longserialVersionUID = 1L;
    
    private String name;
    
    private String age;
 
@Override
    public String toString() {
       return "Person [name=" +  name + ", age=" +  age + ", sex=" +  sex + "]";
    }
 
    public Person() {
       super();
// TODO Auto-generated constructor stub
    }
 
    private String sex;
 
    public Person(String name, String age, String sex) {
       super();
       this.name
       this.age
       this.sex
    }
 
    public String getName() {
       return name;
    }
 
    public  void setName(String name) {
       this.name
    }
 
    public String getAge() {
       return age;
    }
 
    public  void setAge(String age) {
       this.age
    }
 
    public String getSex() {
       return sex;
    }
 
    public  void setSex(String sex) {
       this.sex
    }
 
}

Java2json.java

package jackson;

import java.io.IOException;

import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.ObjectMapper;

public class Java2Json {

   public static void main(String[] args) throws IOException {

      ObjectMapper mapper = new ObjectMapper();

      JsonGenerator generator = mapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);

      Person person = new Person();
      person.setName("morris");
      person.setAge("22");
      person.setSex("男");

      generator.writeObject(person);

      System.out.println("----------------");

      mapper.writeValue(System.out, person);

   }

}

运行结果如下:

{"sex":"男","age":"22","name":"morris"}----------------

{"sex":"男","age":"22","name":"morris"}

上面分别利用JsonGenerator的writeObject方法和ObjectMapper的writeValue方法完成对Java对象的转换,二者传递的参数及构造的方式不同;JsonGenerator的创建依赖于ObjectMapper对象。也就是说如果你要使用JsonGenerator来转换JSON,那么你必须创建一个ObjectMapper。但是你用ObjectMapper来转换JSON,则不需要JSONGenerator。

1.3.  Map集合转换为json

Map2Json.java

package jackson;
 
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
 
import org.codehaus.jackson.map.ObjectMapper;
 
public  class Map2Json {
 
   public  static void main(String[] args) throws IOException {
      Map<String, String> map = new HashMap<String, String>();
 
"name",  "morris");
"age",  "22");
"address",  "hk");
 
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.writeValueAsString(map);
 
      System.out.println(jsonString);
   }
 
}

运行结果如下:

{"address":"hk","age":"22","name":"morris"}

 

1.4.  List集合转换为json

List2json.java

package jackson;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.ObjectMapper;
 
public  class List2Json {
 
    public  static void main(String[] args) throws IOException {
 
       List<String> list = new ArrayList<String>();
       
"name");
"age");
"address");
"sex");
       
       ObjectMapper mapper = new ObjectMapper();
       
       JsonGenerator generator = mapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
       
       generator.writeObject(list);
       System.out.println();
       System.out.println("----------------");
//直接将集合转换为json字符串
       System.out.println(mapper.writeValueAsString(list));
       
       mapper.writeValue(System.out, list);
    }
 
}

运行结果如下:

["name","age","address","sex"]

----------------

["name","age","address","sex"]

["name","age","address","sex"]

1.5.  其他对象转换为json

Other2Json.java

package jackson;
 
import java.io.IOException;
 
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.JsonNodeFactory;
 
public  class Other2Json {
 
   public  static void main(String[] args) throws IOException {
      
      ObjectMapper mapper = new ObjectMapper();
      
      JsonGenerator jsonGenerator = mapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
 
"a",  "b", "c"
"hello world jackson!";
// byte
      jsonGenerator.writeBinary(str.getBytes());
// boolean
      jsonGenerator.writeBoolean(true);
// null
      jsonGenerator.writeNull();
// float
      jsonGenerator.writeNumber(2.2f);
// char
"c");
// String
      jsonGenerator.writeRaw(str, 5, 10);
// String
      jsonGenerator.writeRawValue(str, 5, 5);
// String
      jsonGenerator.writeString(str);
      jsonGenerator.writeTree(JsonNodeFactory.instance.POJONode(str));
      System.out.println();
 
// Object
// {
"user");// user:{
"name", "jackson");// name:jackson
"sex", true);// sex:true
"age", 22);// age:22
// }
 
"infos");// infos:[
// 22
"this is array");// this is array
// ]
 
// }
 
      Person person = new Person();
"22");
"morris");
"男");
// complex Object
// {
"user", person);// user:{bean}
"infos", arr);// infos:[array]
// }
   }
 
}

运行结果如下:

"aGVsbG8gd29ybGQgamFja3NvbiE="true null 2.2c world jac  worl"hello world jackson!" "hello world jackson!"
 {"user":{"name":"jackson","sex":true,"age":22},"infos":[22,"thisis array"]}{"user":{"age":"22","sex":"男","name":"morris"},"infos":["a","b","c"]

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:jackson,String,age,json,import,java,public,name
From: https://blog.51cto.com/morris131/6216895

相关文章

  • 力扣844(Java)-比较含退格的字符串(简单)
    题目:给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。#代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。 示例1:输入:s="ab#c",t="ad#c"输出:true解释:s和t都会变成"ac"。示例2:输入:s="ab##",t="c#d#"输出:true......
  • java:文件写入BufferedOutputStream写入字节和PrintWriter写入字符
    BufferedOutputStream和FileOutputStream写入二进制字节方法定义publicBufferedOutputStream(OutputStreamout){示例BufferedOutputStreamwriter=newBufferedOutputStream(newFileOutputStream("demo.txt"));writer.write("helloworld".getBytes());w......
  • java使用数组实现队列
    1.1. 队列的数据结构队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。1.2. Java实现QueueTestpackagech04;publicclassQ......
  • java用数组实现栈
    1.1. 栈的数据结构栈是一种先进后出的数据结果,只能在一端(称为栈顶(top))对数据项进行插入和删除。1.2. Java实现StackTestpackagech04;publicclassStackTest{publicstaticvoidmain(String[]args){ArrayStackstack=newArrayStack(10);......
  • Json字符串转换为java对象
    1.  Json字符串转换为java对象1.1. Json字符串转换为javabeanJson2Bean.javapackagejackson;importjava.io.IOException;importorg.codehaus.jackson.map.ObjectMapper;publicclassJson2Bean{publicstaticvoidmain(String[]args)throwsIOExcepti......
  • java利用json-lib操作json
    1.1. 下载json-lib.jarhttp://sourceforge.net/projects/json-lib/files/json-lib/1.2. Java对象转换为json1.2.1.  Map对象转换为jsonMap2Json.javapackagejson;importjava.util.HashMap;importjava.util.Map;importnet.sf.json.JSONArray;publicclassMap2......
  • js操作json
    1.1. Json简介1.1.1.  什么是jsonJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON值可以是:数字(整数或浮点数),字符串(在双引号中),逻辑值(true或false),数组(在方括号中),对象(在花括号中),函数,空字符串,null1.1.2.  Json的结构1......
  • Java使用maven-invoker插件进行maven相关操作
    官方文档地址:https://maven.apache.org/shared/maven-invoker/index.htmlApacheMavenInvoker在许多情况下,工具(包括Maven本身)可能希望在干净的环境中启动Maven构建。为什么呢?也许您希望避免Maven插件产生的副作用污染当前系统环境。也许您想从与当前${user.dir}不同的工作目......
  • 数据结构与算法跳表之java实现
    跳表一个有序链表的搜索、添加、删除的平均时间复杂度都为O(n),那么能否利用二分搜索优化有序链表,将搜索、添加、删除的平均时间复杂度降低至O(logn)呢?链表没有像数组那样的高效随机访问(O(1)时间复杂度),所以不能像有序数组那样直接进行二分搜索优化。那有没有其他办法让有序链表的搜......
  • 十大排序算法快速排序之Java实现
    快速排序快速排序(QuickSort)是对冒泡排序的一种改进,采用的是分治策略(一般与递归结合使用),以减少排序过程中的比较次数。快速排序在1960年由查尔斯·安东尼·理查德·霍尔(CharlesAntonyRichardHoare,缩写为C.A.R.Hoare)提出,昵称为东尼·霍尔(TonyHoare)。算法步骤从数组中选择一个......