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
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
相关文章推荐
- Java基础系列16:使用JSONObject和JSONArray解析和构造json字符串
- Java的JSON转换类库GSON的基础使用教程
- Java基础 : JSON的使用
- Java基础——使用json所要用到的jar包下载
- Java 备忘: 使用 SpringMVC+Jackson 自动处理 JSON
- 可能忽略的Java基础知识-小心使用synchronized和volatile
- 框架整合——Java中json的使用
- java中JSONObject与JSONArray的使用详细说明及有关JSON的工具类
- 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解
- Json的基础使用
- Java基础之创建窗口——使用SpringLayout管理器(TrySpringLayout)
- Java基础(面向对象一——理解、匿名函数、封装、构造函数和this关键字的使用)
- 基础Java类使用类装载器实现装载配置文件
- Java基础---Java中带参数返回值方法的使用(四十)
- JSONObject与JSONArray的使用3--Java对象属性的添加或删除(JsonConfig)
- JSON--Java与AJAX(Jquery) json基础篇
- java语言基础(92)——使用Lock锁实现线程安全
- iOS开发学习专题-基础知识(三)NSDictionary字典NSMutableDictionary可变字典NSDictionary字典和json转换详细使用方式
- java语言基础(62)——BigDecimal类的使用
- java 基础 简单正则表达式使用规则、Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类