博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
net.sf.json 属性 转换
阅读量:7139 次
发布时间:2019-06-28

本文共 2480 字,大约阅读时间需要 8 分钟。

hot3.png

需求分析: Person 的name属性和addresss属性在转换为json的时候 需转换为superman 和homeaddress。下面是相应的代码处理部分。
public class Person { private String name;  private String address;  private String password;  public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "Person [name=" + name + ", address=" + address + ", password=" + password + "]"; }}
import net.sf.json.JSONObject;import net.sf.json.JsonConfig;import net.sf.json.processors.PropertyNameProcessor;import com.heavan.domain.Person;public class JsonUtil {	public static void main(String[] args) {		//属性进行了映射		// address - homeaddress		// name - superman		String bean2Json = bean2Json();		System.out.println(bean2Json);		Person json2Bean = json2Bean(bean2Json);		System.out.println(json2Bean);	}	/**	 * 从对象转换为json	 * @return	 */	private static String bean2Json() {				Person person = new Person();		person.setAddress("山东");		person.setName("钓岛是中国的");		person.setPassword("美丽是大家的");		JsonConfig jsonConfig = new JsonConfig();		PropertyNameProcessor processor = new PropertyNameProcessor() {			@Override			public String processPropertyName(Class beanClass, String name) {				if(name.equals("name")){					return "superman";				}else if (name.equals("address")) {					return "homeaddress";				}				return name;			}		};		jsonConfig.registerJsonPropertyNameProcessor(Person.class, processor);				JSONObject jsonObject = JSONObject.fromObject(person,jsonConfig);		return jsonObject.toString();	}	/**	 * 从json 转换为bean	 * @param json	 * @return	 */	private static Person json2Bean(String json) {		JsonConfig jsonConfig = new JsonConfig();		PropertyNameProcessor processor = new PropertyNameProcessor() {			@Override			public String processPropertyName(Class beanClass, String name) {				if (name.equals("homeaddress")) {					return "address";				} else if (name.equals("superman")) {					return "name";				}				return name;			}		};		jsonConfig.setRootClass(Person.class);		jsonConfig.registerJavaPropertyNameProcessor(Person.class, processor);		JSONObject jsonObject = JSONObject.fromObject(json, jsonConfig);		Person bean = (Person) JSONObject.toBean(jsonObject, jsonConfig);		return bean;	}}

转载于:https://my.oschina.net/u/590649/blog/115934

你可能感兴趣的文章
C++函数的重载/覆盖/隐藏
查看>>
php 设置提交信息后自动替换敏感字符加单引号
查看>>
存储容灾的相关限制
查看>>
sql连表查询where后面的条件是否可以加在on后面
查看>>
mysql字符串转数字小计
查看>>
Android Studio第九期 - QQ计步器效果
查看>>
用xftp上传文件到虚拟机提示553错误
查看>>
配置Kdump和Crash心得
查看>>
此证书已在此前安装为一个证书权威机构
查看>>
test
查看>>
稳安快ghost win7 x64 sp1 超级精简版v2.0试用报告
查看>>
python
查看>>
安全笔记
查看>>
创建密码报错ERROR 1372 (HY000)--案例
查看>>
给用户设置密码
查看>>
WMware ESXi 安装 Win2008 R2 找不到硬盘的解决办法
查看>>
RedHat7/Centos7修改默认网卡名为eth0
查看>>
一位身边淑女的软考感想文【转贴】
查看>>
系统吞吐量(TPS)、用户并发量、性能测试概念和公式
查看>>
英语四六级考试秘籍——听力篇
查看>>