jackson 使用方法

jackson須要3個jar: jackson-annotations   jackson-core   jackson-databind  版本本身找吧。java

用過的版本。json

只是簡單講解ObjectMapper的使用數組

ObjectMapper API:app

1.java對象轉成json字符串or其餘的ui

import java.io.IOException; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
  
import com.fasterxml.jackson.databind.ObjectMapper; 
  
public class JacksonDemo { 
  public static void main(String[] args) throws ParseException, IOException { 
    User user = new User(); 
    user.setName("小民");  
    user.setEmail("xiaomin@sina.com"); 
    user.setAge(20); 
      
    SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); 
    user.setBirthday(dateformat.parse("1996-10-01"));     
      
    /** 
     * ObjectMapper是JSON操做的核心,Jackson的全部JSON操做都是在ObjectMapper中實現。 
     * ObjectMapper有多個JSON序列化的方法,能夠把JSON字符串保存File、OutputStream等不一樣的介質中。 
     * writeValue(File arg0, Object arg1)把arg1轉成json序列,並保存到arg0文件中。 
     * writeValue(OutputStream arg0, Object arg1)把arg1轉成json序列,並保存到arg0輸出流中。 
     * writeValueAsBytes(Object arg0)把arg0轉成json序列,並把結果輸出成字節數組。 
     * writeValueAsString(Object arg0)把arg0轉成json序列,並把結果輸出成字符串。 
     */
    ObjectMapper mapper = new ObjectMapper(); 
      
    //User類轉JSON 
    //輸出結果:{"name":"小民","age":20,"birthday":844099200000,"email":"xiaomin@sina.com"} 
    String json = mapper.writeValueAsString(user); 
    System.out.println(json); 
      
    //Java集合轉JSON 
    //輸出結果:[{"name":"小民","age":20,"birthday":844099200000,"email":"xiaomin@sina.com"}] 
    List<User> users = new ArrayList<User>(); 
    users.add(user); 
    String jsonlist = mapper.writeValueAsString(users); 
    System.out.println(jsonlist); 
  } 
}

例 writeValue():
mapper.writeValue(new File("c:\\user.json"), user); //指定文件寫入spa

 

2.json字符串轉javacode

readValue(json,args)  json :json字符串  args:對象類型可包括List.class    Map.class User.class User[ ].class(數組對象)orm

:"[{"uid":1,"uname":"www","number":234,"upwd":"456"}, {"uid":5,"uname":"tom","number":3.44,"upwd":"123"}]"xml

 

代碼塊黑色很差看就用文本了對象

import java.io.IOException;
import java.text.ParseException;
import com.fasterxml.jackson.databind.ObjectMapper;
 
public class JacksonDemo {
  public static void main(String[] args) throws ParseException, IOException {
    String json = "{\"name\":\"小民\",\"age\":20,\"birthday\":844099200000,\"email\":\"xiaomin@sina.com\"}";
      
    /**
     * ObjectMapper支持從byte[]、File、InputStream、字符串等數據的JSON反序列化。
     */
    ObjectMapper mapper = new ObjectMapper();
    User user = mapper.readValue(json, User.class);
    System.out.println(user);
  }
}

readValue同樣能夠從流裏讀
        File file = new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt");  
         FileInputStream inputStream = new FileInputStream(file);  
         Student student = mapper.readValue(inputStream,Student.class);

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

相關文章
相關標籤/搜索