JackSon 사용 설명서
6513 단어 Java 개발
잭슨은 자바 응용 라이브러리를 기반으로 자바 대상을 json 대상과 xml 문서로 변환할 수도 있고 json, xml을 자바 대상으로 변환할 수도 있다.
1, 3 가지 방식 처리 JSON
2、필요한jar팩
jackson-all-1.9.0.jar.zip
둘.잭슨 실현
1. Java 객체 반서열화
import java.io.IOException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
public class JacksonTester {
public static void main(String args[]){
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
//map json to student
try {
Student student = mapper.readValue(jsonString, Student.class);
System.out.println(student);
mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);
jsonString = mapper.writeValueAsString(student);
System.out.println(jsonString);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Student {
private String name;
private int age;
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return "Student [ name: "+name+", age: "+ age+ " ]";
}
}
출력 확인:
Student [ name: Mahesh, age: 21 ] { "name": "Mahesh", "age": 21 }
2. Java 객체 서열화
메모 사용자정의 시리얼화
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("[email protected]");
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":"[email protected]"}
String json = mapper.writeValueAsString(user);
System.out.println(json);
//Java JSON
// :[{"name":" ","age":20,"birthday":844099200000,"email":"[email protected]"}]
List users = new ArrayList();
users.add(user);
String jsonlist = mapper.writeValueAsString(users);
System.out.println(jsonlist);
}
}
셋.트리 모델 반복
import java.io.IOException;
import java.util.Iterator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonTester {
public static void main(String args[]){
JacksonTester tester = new JacksonTester();
try {
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonNode rootNode = mapper.readTree(jsonString);
JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.getTextValue());
JsonNode ageNode = rootNode.path("age");
System.out.println("Age: " + ageNode.getIntValue());
JsonNode verifiedNode = rootNode.path("verified");
System.out.println("Verified: " + (verifiedNode.getBooleanValue() ? "Yes":"No"));
JsonNode marksNode = rootNode.path("marks");
Iterator iterator = marksNode.getElements();
System.out.print("Marks: [ ");
while (iterator.hasNext()) {
JsonNode marks = iterator.next();
System.out.print(marks.getIntValue() + " ");
}
System.out.println("]");
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Eclipse 주석 날짜 형식Eclipse neon 버전 이전에 자동 주석 생성 날짜는 ${date}만 사용할 수 있습니다. 그 형식은 로컬 기본 형식입니다. 예를 들어 "xxx년 xx월 xx일". 수정하려면plugin에서 org를 수정해야 합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.