JSON与对象相互转换问题
问题不是如何使用json的工具简单的转换。
如题:需要远程去调用API,API的请求和返回都是JSON格式,但是楼主不才,在转换的时候没有寻求到一个好的方法,或者是一劳永逸的方法,希望各位高手帮忙谈谈你们的见解。
场景1:请求参数格式:
{"method":"login.doLogin","params":["username","password","location"]}
public class LoginBean{
private String method;
private String username;
private String password;
private String location;
// getter and setter methods
}
[["ID","USERNAME","PASSWORD"],["DATA_ID","DATA_USERNAME","DATA_PASSWORD"]]
public class UserInfo{
private String id;
private String username;
private String password;
//getter and setter methods
}
public class JsonToJavaBean {
public static void main(String[] args) {
String str="{"student":[{"name":"leilei","age":23,"gender":true},{"name":"leilei02","age":23,"gender":false}]}";
Student stu = null;
List<Student> list = null;
try {
ObjectMapper objectMapper=new ObjectMapper();
StudentList studentList=objectMapper.readValue(str, StudentList.class);
list=studentList.getStudent();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(Student s:list){
System.out.println(s.getName()+" "+s.getAge()+" "+s.isGender());
}
}
}
public class JavaBeanToJson {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<Student>();
Student s1=new Student();
s1.setName("leilei");
s1.setAge(23);
Student s2=new Student();
s2.setName("leilei02");
//s2.setAge(23);
list.add(s1);
list.add(s2);
StringWriter str=new StringWriter();
ObjectMapper objectMapper=new ObjectMapper();
try {
objectMapper.writeValue(str, list);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
}
}
public class Student {
private String name;
private int age;
private boolean gender;
//private StudentClass studentClass;
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 boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
/*public StudentClass getStudentClass() {
return studentClass;
}
public void setStudentClass(StudentClass studentClass) {
this.studentClass = studentClass;
}
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + ", studentClass="
+ studentClass + "]";
}*/
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + "]";
}
}