1,数组,集合转换为JSON
如果要将数组,集合转换为JSON,那么可以JSONArray.fromObject()方法来实现,同时也可以使用JSONSerializer.toJSON()来做到。
// 数组
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray = JSONArray.fromObject(boolArray);
assertEquals("[true,false,true]", jsonArray.toString());
// 集合
List<String> list = new ArrayList<String>();
list.add("first");
list.add("second");
JSONArray jsonArray = JSONArray.fromObject(list);
assertEquals("[\"first\",\"second\"]", jsonArray.toString());
JSONSerializer.toJSON()方法的例子
// 数组
boolean[] boolArray = new boolean[] { true, false, true };
JSON json = JSONSerializer.toJSON(boolArray);
assertEquals("[true,false,true]", json.toString());
// 集合
List<String> list = new ArrayList<String>();
list.add("first");
list.add("second");
JSON json = JSONSerializer.toJSON(list);
assertEquals("[\"first\",\"second\"]", json.toString());
2,Map,JAVA BEAN转换为JSON
如果要将Map,JAVA
BEAN转换为JSON,那么可以JSONObject.fromObject()方法来实现,同时也可以使用JSONSerializer.toJSON()来做到。
//MAP
Map<String, Object> map = new HashMap<String, Object>();
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 jsonObject = JSONObject.fromObject(map);
assertEquals(
"{\"arr\":[\"a\",\"b\"],\"int\":1,\"name\":\"json\",\"func\":function(i){ return this.arr[i]; },\"bool\":true}",
jsonObject.toString());
//JAVA BEAN
User user = new User();
user.setName("Jimmy Liu");
user.setAge(28);
user.setAddresses(new String[] { "shenzhen,changsha" });
User friend = new User();
friend.setName("Eric Liu");
friend.setAge(30);
friend.setAddresses(new String[] { "shenzhen,nanchange" });
List<User> friends = new ArrayList<User>();
friends.add(friend);
user.setFriends(friends);
JSONObject jsonObject = JSONObject.fromObject(user);
assertEquals(
"{\"friends\":[{\"friends\":[],\"age\":30,\"name\":\"Eric Liu\",\"addresses\":[\"shenzhen,nanchange\"],\"func1\":function(data){ alert(data); },\"func2\":function(data){ return data; }}],\"name\":\"Jimmy Liu\",\"age\":28,\"addresses\":[\"shenzhen,changsha\"],\"func1\":function(data){ alert(data); },\"func2\":function(data){ return data; }}",
jsonObject.toString());
3,JSON转换为动态BEAN,特定BEAN
如果要将JSON转换为动态BEAN,特定BEAN,那么可以JSONObject.toBean()方法来实现
//转换为动态BEAN
String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";
JSONObject jsonObject = JSONObject.fromObject(json);
Object bean = JSONObject.toBean(jsonObject);
assertEquals(jsonObject.get("name"), PropertyUtils.getProperty(bean,
"name"));
assertEquals(jsonObject.get("bool"), PropertyUtils.getProperty(bean,
"bool"));
assertEquals(jsonObject.get("int"), PropertyUtils.getProperty(bean,
"int"));
assertEquals(jsonObject.get("double"), PropertyUtils.getProperty(bean,
"double"));
assertEquals(jsonObject.get("func"), PropertyUtils.getProperty(bean,
"func"));
List expected = JSONArray.toList(jsonObject.getJSONArray("array"));
assertEquals(expected.size(), ((List) PropertyUtils.getProperty(bean,
"array")).size());
//转换为特定BEAN
String json = "{\"friends\":[],\"name\":\"Jimmy Liu\",\"age\":28,\"addresses\":[\"shenzhen,changsha\"],\"func1\":function(data){ alert(data); },\"func2\":function(data){ return data; }}";
JSONObject jsonObject = JSONObject.fromObject(json);
User user = (User) JSONObject.toBean(jsonObject, User.class);
assertEquals(jsonObject.get("name"), user.getName());
assertEquals(jsonObject.get("age"), user.getAge());
assertEquals(jsonObject.get("func1"), user.getFunc1());
List expected = JSONArray.toList(jsonObject.getJSONArray("addresses"));
assertEquals(expected.size(), user.getAddresses().length);
// 在JSON转换为Bean时,如果bean包括集合的属性且集合包括其他JAVA BEAN,默认情况下,JSONLIB将转为动态BEAN
json = "{'roleName':'administrator','privilegeList':[{'privilegeName':'system-manager'},{'privilegeName':'supplier-manager'}]}";
Map<String, Object> classMap = new HashMap<String, Object>();
classMap.put("privilegeList", Privilege.class);
Role role = (Role) JSONObject.toBean(JSONObject.fromObject(json),
Role.class, classMap);
jsonObject = JSONObject.fromObject(json);
assertEquals(jsonObject.get("roleName"), role.getRoleName());
List privilegeList = JSONArray.toList(jsonObject
.getJSONArray("privilegeList"));
assertEquals(privilegeList.size(), role.getPrivilegeList().size());
assertEquals(PropertyUtils.getProperty(privilegeList.get(0),
"privilegeName"), role.getPrivilegeList().get(0)
.getPrivilegeName());
4,JSON TO XML
可以利用XMLSerializer.write()方法将JSON转化为XML,同时利用的Setter方法控制XML的输出,比如,你能够改变XML的根元素,你可以注册,管理namespaces ,还可以向XML增加属性。
//Boolean
JSONObject json = new JSONObject(true);
String xml = new XMLSerializer().write(json);
System.out.println(xml);
//Object
JSONObject json = JSONObject
.fromObject("{\"privilegeName\":\"system-manager\"}");
XMLSerializer xmlSerializer = new XMLSerializer();
xmlSerializer.setObjectName("privilege");
String xml = xmlSerializer.write(json);
System.out.println(xml);
//Array
JSONArray json = JSONArray.fromObject("[1,2,3]");
XMLSerializer xmlSerializer = new XMLSerializer();
xmlSerializer.setArrayName("array");
xmlSerializer.setElementName("element");
String xml = xmlSerializer.write(json);
System.out.println(xml);
5,XML To JSON
XMLSerializer.read()方法将XML转化为JSON
JSONObject json = (JSONObject) new XMLSerializer()
.read("<?xml version=\"1.0\" encoding=\"UTF-8\"?><o><privilegeName type=\"string\">system-manager</privilegeName></o>" );
System.out.println( json );
6,测试用到的JAVA BEAN,去除了Getter,Setter方法
public class User {
private String name;
private Integer age;
private String[] addresses;
private List<User> friends;
private String func1 = "function(data){ alert(data); }";
private JSONFunction func2 = new JSONFunction(new String[] { "data" },
"return data;");
}
public class Role {
private String roleName;
private List<Privilege> privilegeList;
}
public class Privilege {
private String privilegeName;
}
7,maven依赖
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
<version>1.1</version>
</dependency>
分享到:
相关推荐
要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml <groupId>net.sf.json-lib</groupId> <artifactId>json-lib...
json-lib-2.4-jdk15.jar是json-lib的一个特定版本,适用于JDK 1.5环境。这个版本的库包含了一系列API和实现,使得开发人员能够无缝地在Java应用中使用JSON。它支持多种Java对象类型,包括Map、List、Set、自定义Java...
综上所述,JSON-lib作为一个强大的Java JSON处理库,极大地简化了JSON在Java开发中的使用。无论是在简单的数据交换还是复杂的数据结构处理中,都能发挥出其高效、灵活的特点。如果你正在寻找一个可靠的Java JSON解决...
json-lib-2.3.jar是这个库的一个版本,用于支持将Java对象转换成JSON格式和将JSON数据反序列化为Java对象。 标题中提到的"json-lib-2.3.jar"是json-lib库的一个具体实现,主要包含了一系列处理JSON的类和方法。这个...
JSON-Lib-2.4-jdk15是JSON-Lib的一个特定版本,它针对JDK 1.5进行了优化,以适应该版本的Java环境。这个库包含了处理JSON的多种功能,包括将Java对象转换为JSON字符串,以及将JSON文本解析回相应的Java对象。这对于...
在使用`json-lib-2.4 jar`之前,需要将其添加到项目的类路径中。这通常通过在构建工具(如Maven或Gradle)的依赖管理中配置相关依赖来完成,或者将jar文件复制到项目lib目录并手动设置。对于不使用构建工具的项目,...
它提供了多种版本支持不同的JDK,如本例中的json-lib-2.2.3-jdk15.jar适用于JDK1.5。 - json-lib依赖于其他几个Apache Commons库,如`commons-lang-2.4.jar`、`commons-beanutils-1.8.0.jar`、`commons-collections...
使用json-lib解析json所需要的jar,包括: commons-beanutils-1.7.0.jar、commons-collections-3.2.jar、 commons-lang-2.4.jar、commons-logging-1.1.jar、 ezmorph-1.0.4.jar、json-lib-2.2.2-jdk15.jar
json-lib-2.4-jdk15.jar下载,json-lib是一款简单易用的Java JSON库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。json-lib体积小、无依赖,性能表现也不错,适合在各种Java项目中使用。 ...
通过引入`json-lib-2.4-jdk15.jar`,开发者可以在项目中轻松地集成JSON操作。 1. **JSON对象与Java对象的转换:** - 序列化:将Java对象转换为JSON字符串。例如,一个User类的对象可以通过json-lib转化为JSON格式...
`json-lib-2.4-jdk15`是JSON库的一个特定版本,专为JDK 1.5设计,确保在该环境下能够正常运行。 `json-lib`库主要包含以下组件和功能: 1. **JSON转换**:`json-lib`提供了将Java对象如Map、List、自定义类等转换...
json-lib-2.2.2-jdk15.jar是JSON库的一个版本,特别针对Java 1.5(JDK 1.5)进行了优化。这个压缩包包含了json-lib库的二进制文件,用于在Android和Java平台上解析和生成JSON数据。尽管这个版本是针对JDK 1.5,但...
在Java项目中,将这个jar包添加到项目的类路径(Classpath)中,就可以使用Json-lib提供的API进行JSON操作,比如将Java对象转换为JSON字符串,或将JSON字符串解析为Java对象。 使用Json-lib的一些关键知识点包括: ...
在实际开发中,json-lib-2.4的使用通常涉及以下步骤: 1. **导入依赖**:将json-lib-2.4的jar包添加到项目的类路径中,或者在Maven或Gradle等构建工具中声明依赖。 2. **创建JSON对象**:使用`...
`json-lib-2.3-jdk15`是这个库的一个特定版本,兼容JDK 1.5,这意味着它可以在运行JDK 1.5或更高版本的Java环境中使用。 在Java开发中,`json-lib`库提供了以下关键功能: 1. **JSON对象的创建与解析**:通过`...
5. **依赖管理**:`json-lib-2.2.3-jdk15.jar`可能包含了其运行所需的其他依赖库,这使得开发者在使用时无需额外配置这些依赖,简化了项目的构建过程。 6. **多平台支持**:作为Java库,JSON-lib可以运行在任何支持...
在文件列表中的"jsonlib需要jar包",这可能是指包含了`json-lib`库及其所有依赖的JAR文件。在实际项目中,将这些JAR文件添加到项目的类路径(classpath)中,就可以使用`json-lib`提供的功能,而无需通过Maven或其他...
json-lib-2.2.3-jdk15.jar commons-beanutils-1.7.0.jar commons-httpclient-3.1.jar commons-lang-2.3.jar commons-logging-1.1.1.jar commons-collections-3.2.1.jar ezmorph-1.0.3.jar 如果不关联这些包,则会...
"json-lib-2.1-jdk15.jar" 是一个针对Java 1.5版本优化的JSON库实现,由json-lib项目提供。这个特定的版本(2.1)表明它是该库的一个稳定版本,适用于Java 1.5及更高版本的环境。这个JAR(Java Archive)文件包含了...
标题中的"json-lib-0.8.jar"和"json-lib-0.9.jar"代表了JSON-lib的不同版本。每个版本可能包含一些新特性、修复的错误或者性能改进。例如,从0.8到0.9的升级,可能意味着开发团队已经对库进行了一些优化,增加了新的...