JSON 的 Java基础使用

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值