json与javabean相互转换
来源:互联网 发布:域名导向服务器 编辑:程序博客网 时间:2024/05/21 09:45
环境准备
添加所需jar包
jsonlib2.4
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"}
注意事项:
javabean要么不写构造方法,要么一定要有无参构造方法
更多使用案例参考官方网址:
http://json-lib.sourceforge.net/usage.html
0 0
- json与javabean相互转换
- 使用 XStream实现JavaBean 与 XML/JSON 之间相互转换
- xstream:实现JavaBean与XML/JSON的相互转换
- javaBean与xml、json之间的相互转换
- xstream:实现JavaBean与XML/JSON的相互转换
- xstream:实现JavaBean与XML/JSON的相互转换
- XStream在JavaBean与XML/JSON 之间相互转换
- json字符串与相应的JavaBean对象的相互转换
- Map、JavaBean、JSON的相互转换
- JavaBean、xml、json、map相互转换
- Json、JavaBean、Xml之间的相互转换
- JavaBean与JSON的转换
- Json与JavaBean的转换
- JavaBean、JSON、XML的相互转换,JSON-lib(2.4)
- XML与JavaBean相互转换工具
- XML与JavaBean相互转换工具
- XML格式文本 与 JavaBean 相互转换
- JavaBean与Map的相互转换
- FZU 2020 组合(Lucas定理)
- android硬件加速 setLayerType
- TCP连接建立的三次握手理解
- android解析Json数据
- solr的用法-存储数据到索引库
- json与javabean相互转换
- Codeforces Round #360 (Div. 2) D. Remainders Game
- python爬虫(上)--请求——关于旅游网站的酒店评论爬取(传参方法)
- hdu_3564_Another LIS(线段树+LIS)
- TYVJ 1863 [Poetize I]黑魔法师之门
- 解决ubuntu上网慢的方法
- 二维码识别开源项目zxing的使用和源码分析
- enum8086的使用笔记
- 简单socket的应用(一)