JSONObject 使用心得

JSONObject 类方便 实体类 转换为 json 对象,方便传输。

首先建立三个java类:JSON、MAttach、NoticeEntity 代码如下:

 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

/**
 * @author clz
 * @version v1.0
 * @company xxx
 * @date 2012-4-24
 * @JSON 研究;JSONObject与JSONArray的使用
 */

/*
需要导入包如下:
	
	json-lib-2.4-jdk15.jar
	jakarta commons-lang xx
	jakarta commons-beanutils xx
	jakarta commons-collections xx
	jakarta commons-logging xx
	ezmorph xx
	*/

public class JSON {
	
	public JSON(){
		
	}
	public static void JSONObjectTest(){
		
		JSONObject obj = new JSONObject();
		
		//转换实体
		NoticeEntity n = new NoticeEntity();
		n.setClass_id("0012");
		n.setClass_name("一年级");
		
		//如果只有属性没有get set 函数,json里边也没有对应的key!
		//n.setClass_address("广东茂名");//如果不设置,默认为""传递过去
		//n.setClass_account(100);//如果不设置,默认为0,默认为0传递过去
		
		//转换List<MAttach>,就是一个数组,"attach":[{"key":"value","key":"value"},{...}]形式,名称 与实体类里边为准
		
		MAttach m1 = new MAttach();
		m1.setName("附件一");
		m1.setUrl("http://001");
		
		MAttach m2 = new MAttach();
		m2.setName("附件二");
		m2.setUrl("http://002");
		
		List<MAttach> mAttach = new ArrayList<MAttach>();
		mAttach.add(m1);
		mAttach.add(m2);
		
		n.setList_attach(mAttach);
		

		//转换 HashMap,"map":{"key":"value"} 形式,具体key,名称 与实体类里边为准
		Map<String, String> fields = new HashMap<String, String>();
		
		fields.put("m_id", "m_001");
		fields.put("m_name", "m_002");
		n.setMap(fields);
		
		
		
		//转换 数组,效果与List<MAttach> 是一样的
		
		MAttach[] array_attach = new MAttach[3];

		MAttach am1 = new MAttach();
		am1.setName("am1");
		am1.setUrl("http://am1");
		
		MAttach am2 = new MAttach();
		am2.setName("am2");
		am2.setUrl("http://am2");
		
		
		MAttach am3 = new MAttach();
		am3.setName("am3");
		am3.setUrl("http://am3");
		
		array_attach[0]=am1;
		array_attach[1]=am2;
		array_attach[2]=am3;
		
		n.setArray_attach(array_attach);

		
		JSONObject o = JSONObject.fromObject(n);
		
		obj.put("data", o);//呵呵,有点多此一举...
		System.out.println(obj.get("data"));
	}
			
	public static void main(String args[]){
		JSONObjectTest();	
	}
}


 


public class MAttach {
	private String name;
	private String url;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
}


 


import java.util.List;
import java.util.Map;

public class NoticeEntity {
	

public NoticeEntity(){
	
}




public String class_id;
public String class_name;
public String class_address;
public int class_account;

//记录信息
private Map<String, String> map;
public List<MAttach> list_attach;

//数组,与List效果一样
public MAttach[] array_attach;


public String getClass_address() {
	return class_address;
}


public void setClass_address(String classAddress) {
	class_address = classAddress;
}


public int getClass_account() {
	return class_account;
}


public void setClass_account(int classAccount) {
	class_account = classAccount;
}




public Map<String, String> getMap() {
	return map;
}


public void setMap(Map<String, String> map) {
	this.map = map;
}


public String getClass_id() {
	return class_id;
}


public void setClass_id(String classId) {
	class_id = classId;
}


public String getClass_name() {
	return class_name;
}


public void setClass_name(String className) {
	class_name = className;
}


public List<MAttach> getList_attach() {
	return list_attach;
}


public void setList_attach(List<MAttach> listAttach) {
	list_attach = listAttach;
}


public MAttach[] getArray_attach() {
	return array_attach;
}


public void setArray_attach(MAttach[] arrayAttach) {
	array_attach = arrayAttach;
}




}






测试结果如下:

{"array_attach":[{"name":"am1","url":"httb://am1"},{"name":"am2","url":"httb://am2"},{"name":"am3","url":"httb://am3"}],"class_account":0,"class_address":"","class_id":"0012","class_name":"一年级","list_attach":[{"name":"附件一","url":"httb://001"},{"name":"附件二","url":"httb://002"}],"map":{"m_name":"m_002","m_id":"m_001"}}


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值