JSONObject 解析

本文详细介绍如何在Java中使用JSON库将各种数据类型(包括List、Map、Bean、数组和一般数据)转换为JSON格式,同时展示了所需导入的jar包及常见异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互

在java中使用,需要导入**–net.sf.json.下的类(jar包是json-lib-x.x.jar*)

完整包:

 commons-beanutils.xxx.jar
 commons-collections.xxx.jar
 commons-lang.xxx.jar
 commons-logging.jar
 json-lib.xxx.jar
 ezmorph.xxx.jar

如果不导入这些包,你就等着报下面这些异常吧,嘻嘻:

java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher 
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap 
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean 
java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException 
java.lang.NoClassDefFoundError:org/apache/commons/lang/exception/NestableRuntimeException 
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

JSON在对Object转换的时候,是按照domain类(写有get和set方法的对象类,如下面的Student类)中的所有getXXX()方法进行转换的。如果你在类中写了非属性的getXXX()方法,那么返回给你的就会有XXX属性了。先上例子,最后放完整的使用方法。

public class Student {
	private String no;
	private String name;

	public String getNo() {
		return no;
	}

	public void setNo(String no) {
		this.no = no;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

JSON部分

List<Student> list = asmn;//这里我用asmn代替实际的值
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total", total);
resultMap.put("rows", list);
System.out.println("asd:"+JSONObject.fromObject(resultMap).toString());

输出结果asd:{"total":1,"rows":[{"name":"梦诺","no":"001"}]}

下面来介绍具体用法:

1. List集合转换成json代码

List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );

2. Map集合转换成json代码

Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);

3. Bean转换成json代码

JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4. 数组转换成json代码

boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

5. 一般数据转换成json代码

JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值