您的位置:首页 > 编程语言 > Java开发

JSON 的 Java基础使用

2011-09-20 18:58 225 查看
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript,
Perl, Python等)。

关于JSON格式和用法的具体介绍请看度娘百科:http://baike.baidu.com/view/136475.htm,这里仅介绍几个简单的java生成Json的基础用法

在Java中使用JSON类型之前,需要给project添加几个jar包:

json-lib-2.2-jdk15.jar

commons-logging-1.1.1.jar

commons-collections-3.2.1.jar

commons-beanutils.jar

ezmorph-1.0.5.jar

commons-lang.jar

以上的是最基础的几个包,如果需要JSON的全面功能,还需要添加:

commons-beanutils-core-1.8.0.jar

commons-httpclient.jar

morph-1.1.1.jar

这些包的添加视情况而定

我把这些包打了7z上传并分享下载地址:http://download.csdn.net/detail/zhangzh332/3620070

Java代码中生成Json类型的基本用法如下:

------------------------------------------------------------------

HashMap生成JSONObject:

Map map = new HashMap();

map.put(XXXX,YYYY);

JSONObject json = JSONObject.fromObject(map);

这里注意HashMap是无序的,也就是说里面的元素没有排列顺序,所以生成的JsonObject用print打出来的使用“{ XXXX:YYYY }”形式

------------------------------------------------------------------

ArrayList生成JSONArray:

List list = new ArrayList();

list.add(XXXX);

JSONArray json = JSONArray.fromObject(list);

ArrayList是有序的,所以生成的JsonArray用print打出来的使用“[ XXXX ]”形式

------------------------------------------------------------------

数组String[]生成JSONArray:

String[] strings = {"1", "2", "3"};

JSONArray ja1 = JSONArray.fromObject(strings);

数组String[]是有序的,所以生成的JsonArray用print打出来["1","2","3"]

String可以换为任意的Object

------------------------------------------------------------------

String字符串生成JSONArray:

JSONArray ja = JSONArray.fromObject("['1','2','3']");

结果跟上一个是一样的

------------------------------------------------------------------

自定义结构体型实例转生成JSONObject并解析成该类型:

定义一个类MyStruct:

public class MyStruct {

public String name;

public int
number;

public String[] attribute;

.............

public String getName() ;

public int getNumber();

public String[] getAttribute();

//注意,这里必须有各变量的getter方法,json会从类中的getter方法取值然后加入json实例的数据中,如果没有,这生成的json为{ }

//可以用eclipse的source中的功能自动生成getter和setter方法

}

........

MyStruct ms = new MyStruct();

ms.name = “zhang”;

ms.number = 332;

ms.attribute = {"male", "183cm"};

JSONObject json = JSONObject.fromObject(ms);

//打印出{"name":"zhang","number":332,"attribute":["male","183cm"]}

........

Object temp = JSONObject.toBean(json,
MyStruct.class);

if(temp instanceof MyStruct) {

MyStruct ms2 = (MyStruct)
temp;

//生成的ms2理论上应该与ms内容相同

}

------------------------------------------------------------------

Json还可以生成xml数据流:

MyStruct ms = new MyStruct();

ms.name = “zhang”;

ms.number = 332;

ms.attribute = {"male", "183cm"};

JSONObject json = JSONObject.fromObject(ms);
XMLSerializer xmlSerializer = new XMLSerializer();

String xml = xmlSerializer.write(json);

打印出:

<?xml version="1.0" encoding="UTF-8"?>

<o><attribute class="array"><e type="string">male</e><e type="string">183cm</e></attribute><name type="string">zhang</name><number type="number">332</number></o>

这里要用到xom-1.1.jar包,因为CSDN上已经有人发过了,我就不发了,给个链:http://download.csdn.net/download/xuewei97/2033956
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: