json與javabean相互轉換
阿新 • • 發佈:2019-02-16
環境準備
1.簡單javabean轉換成json
Person.java
public class Person{
public Person() {}
public Person(String name) {
this.name = name;
}
private String name;
// getters & setters
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
}
SimpleBeanToJSON .java
import net.sf.json.JSONObject;
import util.JSON;
public class SimpleBeanToJSON {
/**
* @param args
* @throws CloneNotSupportedException
*/
public static void main(String[] args) throws CloneNotSupportedException {
Person person=new Person("thatluck");
JSONObject arrobj=JSON.getJsonObject(person);
System.out.println(arrobj);
}
}
輸出結果:
{“name”:”thatluck”}
2.複雜javabean轉成成json
Group.java
import java.util.List;
public class Group {
private List<Person> group;
private String groupName;
public List<Person> getGroup() {
return group;
}
public void setGroup(List<Person> group) {
this.group = group;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
}
ComplexBeanToJSON .java
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONObject;
import util.JSON;
public class ComplexBeanToJSON {
/**
* @param args
* @throws CloneNotSupportedException
*/
public static void main(String[] args) throws CloneNotSupportedException {
Group group=new Group();
List<Person> g=new ArrayList<Person>();
group.setGroupName("BAT");
Person liyanhong=new Person("李彥巨集");
Person mayun=new Person("馬雲");
Person mahuateng=new Person("馬化騰");
g.add(liyanhong);
g.add(mayun);
g.add(mahuateng);
group.setGroup(g);
JSONObject arrobj=JSON.getJsonObject(group);
System.out.println(arrobj);
}
}
輸出結果
{“group”:[{“name”:”李彥巨集”},{“name”:”馬雲”},{“name”:”馬化騰”}],”groupName”:”BAT”}
3.json轉成簡單javabean
JSONToSimpleBean.java
import net.sf.json.JSONObject;
public class JSONToSimpleBean {
public static void main(String[] args){
String json = "{'name':'thatluck'}";
JSONObject jsonObject = JSONObject.fromObject( json );
Person obj=(Person)JSONObject.toBean(jsonObject,Person.class);
System.out.print(obj.getName());
}
輸出結果:
thatluck
4.json轉成複雜javabean
JSONToComplexBean.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.sf.ezmorph.Morpher;
import net.sf.ezmorph.MorpherRegistry;
import net.sf.ezmorph.bean.BeanMorpher;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
import util.JSON;
public class JSONToComplexBean {
public static void main(String[] args){
String json = "{'group':[{'name':'李彥巨集'},{'name':'馬雲'},{'name':'馬化騰'}],'groupName':'BAT'}";
Map classMap = new HashMap();
classMap.put( "group", Person.class );
classMap.put("groupName", String.class);
Group bean = (Group) JSONObject.toBean( JSONObject.fromObject(json), Group.class, classMap );
Morpher dynaMorpher = new BeanMorpher( Person.class, JSONUtils.getMorpherRegistry() );
MorpherRegistry morpherRegistry=new MorpherRegistry();
morpherRegistry.registerMorpher( dynaMorpher );
List output = new ArrayList();
for( Iterator i = bean.getGroup().iterator(); i.hasNext(); ){
output.add( morpherRegistry.morph( Person.class, i.next() ) );
}
bean.setGroup( output );
Person p=(Person)bean.getGroup().get(1);
System.out.println(p.getName());
JSONObject arrobj=JSON.getJsonObject(bean);
System.out.println(arrobj);
}
}
輸出結果:
馬雲
{"group":[{"name":"李彥巨集"},{"name":"馬雲"},{"name":"馬化騰"}],"groupName":"BAT"}
注意事項: