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);
------------------------------------------------------------------------------------------------------------