1.maven配置
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-lgpl</artifactId>
<version>1.7.4</version>
</dependency>
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
public class Person {
@JsonProperty("n")//这个是标识序列化时用n来代替name
private String name;
private String sex;
@JsonIgnore//这个是标识不对该属性进行序列化
private int age;
@JsonProperty("a")
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
3.整个测试类:
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public class TestJson {
private ObjectMapper objectMapper = new ObjectMapper();
//单个对象的序列化
public void testTojson(){
Person testPerson = new Person();
testPerson.setAddress("dsfsdf");
testPerson.setAge(10);
testPerson.setName("name");
testPerson.setSex(null);
try {
String resultStr = objectMapper.writeValueAsString(testPerson);
System.out.println(resultStr);
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//将json反序列化为对象
public void testFromJson(){
String content = "{\"n\":\"name\",\"sex\":\"sec\",\"a\":\"null\"}";
try {
Person resultPerson = objectMapper.readValue(content, Person.class);
System.out.println(resultPerson.getAddress().trim());
System.out.println(resultPerson.getAge());
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}//对象列表的序列化
public void testFromList(){
Person testPerson1 = new Person();
testPerson1.setAddress("dsfsdf111");
testPerson1.setAge(10);
testPerson1.setName("name11");
testPerson1.setSex("sec11");
Person testPerson2 = new Person();
testPerson2.setAddress("dsfsdf222");
testPerson2.setAge(10);
testPerson2.setName("name22");
testPerson2.setSex("sec22");
Person testPerson3 = new Person();
testPerson3.setAddress("dsfsdf333");
testPerson3.setAge(10);
testPerson3.setName("name33");
testPerson3.setSex("sec33");
try {
List<Person> personList = new ArrayList<Person>();
personList.add(testPerson1);
personList.add(testPerson2);
personList.add(testPerson3);
String resultStr = objectMapper.writeValueAsString(personList);
System.out.println(resultStr);
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}//将josn串反序列化为对象列表
public void testListFromJson(){
String content = "[{\"sex\":\"sec11\",\"n\":\"name11\",\"a\":\"dsfsdf111\"}," +
"{\"sex\":\"sec22\",\"n\":\"name22\",\"a\":\"dsfsdf222\"}," +
"{\"sex\":\"sec33\",\"n\":\"name33\",\"a\":\"dsfsdf333\"}]";
try {
//这个有问题
//List<Person> resultPerson = objectMapper.readValue(content, ArrayList.class);
//System.out.println(resultPerson.get(0).getAddress());
List<Person> d = objectMapper.readValue(content, new TypeReference<List<Person>>(){});
System.out.println(d.get(0).getAddress());
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestJson test = new TestJson();
test.testTojson();
test.testFromJson();
test.testFromList();
test.testListFromJson();
}
}
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。