- 浏览: 959841 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
1、JsonLib简介
Json-lib包 是一个Java类库,提供将Java对象 (包括:beans,maps,collections,java arrays 和 XML等)和JSON互相转换 的功能 。
相关的Jar包:
-
json-lib-2.3-jdk15.jar
-
commons-beanutils-1.8.0.jar
-
commons-collections-3.1.jar
-
commons-lang-2.4.jar
-
commons-logging-1.1.1.jar
-
ezmorph-1.0.6.jar
备注 :我们这里用的Struts-2.3.3版本中Json-lib包。
官方网站:http://json-lib.sourceforge.net/
下表中是Java与JavaScript类型对应关系。
JSON |
Java |
|
string |
<=> |
java.lang.String, java.lang.Character, char |
number |
<=> |
java.lang.Number, byte, short, int, long, float, double |
true|false |
<=> |
java.lang.Boolean, boolean |
null |
<=> |
null |
function |
<=> |
net.sf.json.JSONFunction |
array |
<=> |
net.sf.json.JSONArray (object, string, number, boolean, function) |
object |
<=> |
net.sf.json.JSONObject |
2、JsonLib使用
2.1 准备工作
我们这里使用JUnit4.0进行测试实验,下面是测试中使用中的类。
【测试实体——Student 】
package com.hebut.jsonlib;
public class Student {
private String userName;
private String sex;
private int age;
public Student() {
}
public Student(String userName, String sex, int age) {
this .userName = userName;
this .sex = sex;
this .age = age;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this .userName = userName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this .sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this .age = age;
}
}
【测试实体——Class 】
package com.hebut.jsonlib;
import java.util.Date;
import java.util.List;
public class Class {
private String name;
private Date date;
private List<Student> students;
public Class() {
}
public Class(String name, Date date, List<Student> students) {
this .name = name;
this .date = date;
this .students = students;
}
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this .date = date;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this .students = students;
}
}
2.2 处理ArraysToJson
【示例代码 】
package com.hebut.jsonlib;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import org.junit.Test;
public class JsonLib {
@Test
public void array2json() {
int [] intArray = new int []{1,4,5};
JSONArray jsonArray1 = JSONArray.fromObject (intArray);
System.out .println("int[] intArray");
System.out .println(jsonArray1);
boolean [] boolArray = new boolean []{true ,false ,true };
System.out .println("boolean[] boolArray");
JSONArray jsonArray2 = JSONArray.fromObject (boolArray);
System.out .println(jsonArray2);
int [][] int2Array = new int [][]{{1,2},{3,4}};
JSONArray jsonArray3 = JSONArray.fromObject (int2Array);
System.out .println("int[][] int2Array");
System.out .println(jsonArray3);
float [] floatArray = new float []{0.1f,0.2f,0.3f};
JSONArray jsonArray4 = JSONArray.fromObject (floatArray);
System.out .println("float[] floatArray");
System.out .println(jsonArray4);
String[] strArray = new String[]{"hello","hebut","xiapi"};
JSONArray jsonArray5 = JSONArray.fromObject (strArray);
System.out .println("String[] strArray");
System.out .println(jsonArray5);
}
}
【运行结果 】
int[] intArray
[1,4,5]
boolean[] boolArray
[true,false,true]
int[][] int2Array
[[1,2],[3,4]]
float[] floatArray
[0.1,0.2,0.3]
String[] strArray
["hello","hebut","xiapi"]
2.3 处理CollectionsToJson
【示例代码 】
package com.hebut.jsonlib;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import org.junit.Test;
public class JsonLib {
@Test
public void collections2json(){
List list1 = new ArrayList();
list1.add("first");
list1.add("second");
JSONArray jsonArray1 = JSONArray.fromObject (list1);
System.out .println("List list1");
System.out .println(jsonArray1);
List<Student> list2 = new ArrayList<Student>();
list2.add(new Student("xiapi1"," 男 ",10));
list2.add(new Student("xiapi2"," 女 ",11));
list2.add(new Student("xiapi3"," 男 ",12));
JSONArray jsonArray2 = JSONArray.fromObject (list2);
System.out .println("List<Student> list2");
System.out .println(jsonArray2);
}
}
【运行结果 】
List list1
["first","second"]
List<Student> list2
[{"age":10,"sex":" 男 ","userName":"xiapi1"},{"age":11,"sex":" 女 ","userName":"xiapi2"},{"age":12,"sex":" 男 ","userName":"xiapi3"}]
2.4 处理MapToJson
【示例代码 】
package com.hebut.jsonlib;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;
import org.junit.Test;
public class JsonLib {
@Test
public void map2json(){
Map map1 = new HashMap();
map1.put("name","json");
map1.put("bool",Boolean.TRUE );
map1.put("int",new Integer(1));
map1.put("arr",new String[]{"a","b"});
map1.put("func","function(i){ return this.arr[i]; }");
JSONObject jsonObject1 = JSONObject.fromObject (map1);
System.out .println("Map map1");
System.out .println(jsonObject1);
Map<String,Student> map2 = new HashMap<String,Student>();
map2.put("k1", new Student("xiapi1"," 男 ",10));
map2.put("k2", new Student("xiapi2"," 女 ",12));
map2.put("k3", new Student("xiapi3"," 男 ",13));
JSONObject jsonObject2 = JSONObject.fromObject (map2);
System.out .println("Map<String,Student> map2");
System.out .println(jsonObject2);
}
}
【运行结果 】
Map map1
{"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true}
Map<String,Student> map2
{"k3":{"age":13,"sex":" 男 ","userName":"xiapi3"},"k1":{"age":10,"sex":" 男 ","userName":"xiapi1"},"k2":{"age":12,"sex":" 女 ","userName":"xiapi2"}}
2.5 处理BeanToJson
【示例代码 】
package com.hebut.jsonlib;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
import net.sf.json.util.CycleDetectionStrategy;
import org.junit.Test;
public class JsonLib {
@Test
public void bean2json(){
Student s1 = new Student("xiapi"," 男 ",22);
JSONObject jsonObject1 = JSONObject.fromObject (s1);
System.out .println("Student s1");
System.out .println(jsonObject1);
Class c1 = new Class();
c1.setName(" 计算机应用 1 班 ");
c1.setDate(new Date());
JsonConfig config=new JsonConfig();
// 设置循环策略为忽略
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT );
// 设置 json 转换的处理器用来处理日期类型
// 凡是反序列化 Date 类型的对象,都会经过该处理器进行处理
config.registerJsonValueProcessor(Date.class ,
new JsonValueProcessor() {
// 参数 1 :属性名 参数 2 : json 对象的值 参数 3 : jsonConfig 对象
public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=(Date) arg1;
return sdf.format(d);
}
public Object processArrayValue(Object arg0, JsonConfig arg1) {
return null ;
}
});
List<Student> students = new ArrayList<Student>();
students.add(new Student("xiapi1"," 男 ",10));
students.add(new Student("xiapi2"," 女 ",11));
students.add(new Student("xiapi3"," 男 ",12));
c1.setStudents(students);
JSONObject jsonObject2 = JSONObject.fromObject (c1,config);
System.out .println("Class c1");
System.out .println(jsonObject2);
}
}
【运行结果 】
Student s1
{"age":22,"sex":" 男 ","userName":"xiapi"}
Class c1
{"date":"2012-05-21 19:19:31","name":" 计算机应用 1 班 ","students":[{"age":10,"sex":" 男 ","userName":"xiapi1"},{"age":11,"sex":" 女 ","userName":"xiapi2"},{"age":12,"sex":" 男 ","userName":"xiapi3"}]}
2.6 处理XmlToJson
在处理XML时,需要另添加"xom-1.2.8.jar "包。
下载地址:http://www.xom.nu/
【示例代码 】
package com.hebut.jsonlib;
import net.sf.json.JSON;
import net.sf.json.xml.XMLSerializer;
import org.junit.Test;
public class JsonLib {
@Test
public void xml2json(){
String s="<student>
<name id='n1'>xiapi</name>
<sex class='s1'> 男 </sex>
<age>20</age>
</student>";
XMLSerializer x =new XMLSerializer();
JSON json = x.read(s);
System.out .println("XmlToJson");
System.out .println(json.toString());
}
}
【运行结果 】
2012-5-21 19:01:03 net.sf.json.xml.XMLSerializer getType
信息 : Using default type string
XmlToJson
{"name":{"@id":"n1","#text":"xiapi"},"sex":{"@id":"s1","#text":" 男 "},"age":"20"}
2.7 处理JsonToArrays
【示例代码 】
package com.hebut.jsonlib;
import net.sf.ezmorph.test.ArrayAssertions;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
import net.sf.json.JsonConfig;
import org.junit.Test;
public class JsonLib {
@Test
public void json2arrays(){
String json1 = "['first','second']";
JSONArray jsonArray1 = (JSONArray) JSONSerializer.toJSON (json1);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY );
Object[] output1 = (Object[]) JSONSerializer.toJava (jsonArray1, jsonConfig);
Object[] expected = new Object[] { "first", "second" };
ArrayAssertions.assertEquals (expected, output1);
System.out .println("Object[]");
System.out .println(output1.length);
System.out .println(output1[1]);
String json2 ="[[1,2],[3,4]]";
JSONArray jsonArray2 = JSONArray.fromObject (json2);
Object[][] output2 = (Object[][])JSONArray.toArray (jsonArray2);
System.out .println("Object[][]");
System.out .println(output2.length);
System.out .println(output2[0][0]);
}
}
【运行结果 】
Object[]
2
second
Object[][]
2
1
2.8 处理JsonToCollections
【示例代码 】
package com.hebut.jsonlib;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
import org.junit.Test;
public class JsonLib {
@Test
public void json2collections(){
String json1 = "['first','second']";
JSONArray jsonArray1 = (JSONArray) JSONSerializer.toJSON (json1);
List output1 = (List) JSONSerializer.toJava (jsonArray1);
System.out .println("List");
System.out .println(output1.get(0));
String json2 = "[{'age':10,'sex':' 男 ','userName':'xiapi1'},
{'age':11,'sex':' 女 ','userName':'xiapi2'}]";
JSONArray jsonArray2 = JSONArray.fromObject (json2);
List<Student> output2 = JSONArray.toList (jsonArray2,Student.class );
System.out .println("List<Student>");
System.out .println(output2.size());
System.out .println(output2.get(0));
System.out .println(output2.get(0).getUserName());
}
}
【运行结果 】
List
first
List<Student>
2
com.hebut.jsonlib.Student@16f144c
xiapi1
2.9 处理JsonToMap
【示例代码 】
package com.hebut.jsonlib;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import net.sf.ezmorph.Morpher;
import net.sf.ezmorph.MorpherRegistry;
import net.sf.ezmorph.bean.BeanMorpher;
import net.sf.ezmorph.test.ArrayAssertions;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import net.sf.json.util.JSONUtils;
import net.sf.json.xml.XMLSerializer;
import org.junit.Test;
public class JsonLib {
@Test
public void json2map(){
String json1 ="{'arr':['a','b'],'int':1,
'name':'json','bool':true}";
JSONObject jsonObject1 = JSONObject.fromObject (json1);
Map typeMap1 = new HashMap();
typeMap1.put("arr", String[].class );
typeMap1.put("int", Integer.class );
typeMap1.put("name", String.class );
typeMap1.put("bool", Boolean.class );
Map output1 = (Map)JSONObject.toBean (jsonObject1, Map.class ,typeMap1);
System.out .println("Map");
System.out .println(output1.size());
System.out .println(output1.get("name"));
System.out .println(output1.get("arr"));
String json2 ="{'k1':{'age':10,'sex':' 男 ','userName':'xiapi1'},
'k2':{'age':12,'sex':' 女 ','userName':'xiapi2'}}";
JSONObject jsonObject2 = JSONObject.fromObject (json2);
Map<String,Class<?>> typeMap2 =new HashMap<String,Class<?>>();
Map<String,Student> output2 = (Map<String,Student>) JSONObject.toBean (jsonObject2,Map.class ,typeMap2);
System.out .println("Map<String,Student>");
System.out .println(output2.size());
System.out .println(output2.get("k1"));
// 先往注册器中注册变换器,需要用到 ezmorph 包中的类
MorpherRegistry morpherRegistry = JSONUtils.getMorpherRegistry ();
Morpher dynaMorpher = new BeanMorpher(Student.class , morpherRegistry);
morpherRegistry.registerMorpher(dynaMorpher);
System.out .println(((Student)morpherRegistry.morph( Student.class ,output2.get("k2"))).getUserName());
}
}
【运行结果 】
Map
4
json
[a, b]
Map<String,Student>
2
net.sf.ezmorph.bean.MorphDynaBean@5b8827[
{sex= 男 , age=10, userName=xiapi1}
]
xiapi2
2.10 处理JsonToBean
【示例代码 】
package com.hebut.jsonlib;
import net.sf.ezmorph.Morpher;
import net.sf.ezmorph.MorpherRegistry;
import net.sf.ezmorph.bean.BeanMorpher;
import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JSONObject ;
import net.sf.json.JSONSerializer;
import net.sf.json.util.JSONUtils;
import org.junit.Test;
public class JsonLib {
@Test
public void json2bean(){
// 简单对象
String json1 = "{'age':22,'sex':' 男 ','userName':'xiapi'}";
JSONObject jsonObject1 = JSONObject .fromObject (json1);
Student output1 = (Student)JSONObject .toBean (jsonObject1, Student.class );
System.out .println("Student");
System.out .println(output1.getUserName());
// 复杂对象
String json2 = "{'date':'2012-05-21 13:03:11',
'name':' 计算机应用 1 班 ',
'students':[{'age':10,'sex':' 男 ','userName':'xiapi1'},
{'age':11,'sex':' 女 ','userName':'xiapi2'}]}";
// 转为日期
String[] DATE_FORMAT = { "yyyy-MM-dd HH:mm:ss" };
MorpherRegistry morpherRegistry = JSONUtils.getMorpherRegistry ();
morpherRegistry.registerMorpher(new DateMorpher(DATE_FORMAT));
JSONObject jsonObject2 = JSONObject .fromObject (json2);
Map typeMap1 = new HashMap();
typeMap1.put("date", Date.class );
typeMap1.put("name",String.class );
typeMap1.put("students", Student.class );
Class output2 = (Class)JSONObject .toBean (jsonObject2, Class.class ,typeMap1);
System.out .println("Class");
System.out .println(output2.getName());
System.out .println(output2.getDate());
System.out .println(output2.getStudents().get(0).getUserName());
}
}
【运行结果 】
Student
xiapi
Class
计算机应用 1 班
Mon May 21 13:03:11 CST 2012
xiapi1
2.11 处理JsonToXml
【示例代码 】
package com.hebut.jsonlib;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
import org.junit.Test;
public class JsonLib {
@Test
public void json2xml(){
String json1 = "{'age':22,'sex':' 男 ','userName':'xiapi'}";
JSONObject jsonObj = JSONObject.fromObject (json1);
XMLSerializer x = new XMLSerializer();
String xml = x.write(jsonObj);
System.out .println("XML");
System.out .println(xml);
}
}
【运行结果 】
XML
<?xml version="1.0" encoding="UTF-8"?>
<o><age type="number">22</age><sex type="string"> 男 </sex><userName type="string">xiapi</userName></o>
2.12 对象JSONArray
【示例代码 】
package com.hebut.jsonlib;
import net.sf.json.JSONArray;
import org.junit.Test;
public class JsonLib2 {
@Test
public void testJSONArray() {
JSONArray jsonArray = new JSONArray();
jsonArray.add(0," 第一个值 ");
jsonArray.add(1," 第二个值 ");
jsonArray.add(2," 第三个值 ");
System.out .print(jsonArray.toString());
}
}
【运行结果 】
[" 第一个值 "," 第二个值 "," 第三个值 "]
2.13 对象JSONObject
【示例代码 】
package com.hebut.jsonlib;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.junit.Test;
public class JsonLib2 {
@Test
public void testJSONObject() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "xiapi");
jsonObject.put("age", 20);
jsonObject.put("sex", " 男 ");
JSONArray jsonArray = new JSONArray();
jsonArray.add(" 唱歌 ");
jsonArray.add(" 摄影 ");
jsonArray.add(" 象棋 ");
jsonObject.element("hobby",jsonArray);
System.out .println(jsonObject);
}
}
【运行结果 】
{"name":"xiapi","age":20,"sex":" 男 ","hobby":[" 唱歌 "," 摄影 "," 象棋 "]}
3、日期转换
json-lib转换出来的日期类型格式:
"birthday":{"date":1,"day":0,"hours":0,"minutes":0,"month":7,"nanos":0,"seconds":0,"time":1280592000000,"timezoneOffset":-480,"year":110}
那么我们如果想要"yyyy-MM-dd HH:mm:ss "这种格式的怎么办呢?
3.1 三种解决方案
都必须使用jsonConfig对象进行处理
(1)使用jsonConfig的setExcludes的方法进行过滤,将所需要过滤的字段名传入setExcludes方法。
public void objectToJson(){
//创建对象
Emp emp= new Emp(****);
//创建jsonConfig对象
JsonConfig config=new JsonConfig();
//设置过滤字段
config.setExcludes(new String[]{"dept"});
String s=JSONObject.fromObject(emp,config).toString();
System.out.println(s);
}
(2)使用jsonConfig的setJsonPropertyFilter进行属性过滤,过滤器中返回true表示过滤该字段,返回false表示可以转换该字段。
public void objectToJson(){
//创建对象
Emp emp= new Emp(****);
//创建jsonConfig对象
JsonConfig config=new JsonConfig();
//设置过滤字段
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object arg0, String arg1, Object arg2) {
if("dept".equals(arg1)){
return true;
}
return false;
}
});
String s=JSONObject.fromObject(emp,config).toString();
System.out.println(s);
}
上述两种解决方案可以解决部分问题,但是json-lib使用代理进行反射,所以如果想要部门表的信息,而去过滤部门表的员工对象,这样还是解决不了。这样可以使用更简单有效的方案
(3)使用jsonConfig的setCycleDetectionStrategy()方法进行忽略死循环。
使用jsonConfig的registerJsonValueProcessor()进行属性转换设置。
public void objectToJson(){
//创建对象
Emp emp= new Emp(****);
//创建jsonConfig对象
JsonConfig config=new JsonConfig();
//设置循环策略为忽略 解决json最头疼的问题 死循环
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
//设置 json转换的处理器 用来处理日期类型
//凡是反序列化Date类型的对象,都会经过该处理器进行处理
config.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {
//参数1 :属性名 参数2:json对象的值 参数3:jsonConfig对象
public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=(Date) arg1;
return sdf.format(d);
}
public Object processArrayValue(Object arg0, JsonConfig arg1) {
return null;
}
});
String s=JSONObject.fromObject(emp,config).toString();
System.out.println(s);
}
这种方案可以解决死循环问题和日期格式化的问题。
结果:
{"birthday":"2010-08-01 00:00:00","dept":{"depid":1,"depname":"开发部","emps": [{"birthday":"2009-08-01 00:00:00","dept":null,"empid":30,"empname":"田 七"},null]},"empid":27,"empname":"王五"}
3.2 封装函数方案
public static String convert2Json2(Object object) {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class,
new JsonValueProcessor() {
private final String format = "yyyy-MM-dd hh:mm:ss";
public Object processArrayValue(Object object,
JsonConfig jsonConfig) {
return null;
}
public Object processObjectValue(String string,
Object object, JsonConfig jsonConfig) {
if (null == object) {
return "";
} else {
if (object instanceof java.util.Date) {
SimpleDateFormat simpleDateFormat = new
SimpleDateFormat(format);
String dateStr = simpleDateFormat
.format(object);
return dateStr;
}
}
return object.toString();
}
});
if (object instanceof String)
return object.toString();
if ((object instanceof Object[]) || (object instanceof List)) {
JSONArray jsonObject = JSONArray.fromObject (object, jsonConfig);
return jsonObject.toString() + '\n';
} else {
JSONObject jsonObject = JSONObject.fromObject (object, jsonConfig);
return jsonObject.toString() + '\n';
}
}
发表评论
-
最新上线的小站 格格衣柜
2012-12-13 18:43 13格格衣柜,www.gegeyigui.com,有兴趣可以去看看 ... -
fck 相关处理
2012-12-10 18:11 1059javascript获取和设置FCKeditor内容 ... -
【转】Java版DBHelper【简单】(MySQL数据库)
2012-06-18 17:47 15421、测试数据库 1.1 数据库数据 ... -
freemarker 自定义标签问题
2012-05-05 10:47 1180倒腾半天,发现是使用标签时,出错了。[@cms_taobaok ... -
【转】freemarker中实现自定义标签(包含处理参数以及循环变量)(2.3.11版本以后的方式)
2012-05-04 14:34 2538博客分类: ... -
【转】freemarker中实现自定义标签(2.3.11版本以后的方式)
2012-05-04 14:32 1511博客分类: ... -
Spring Data JPA 简单介绍
2011-08-26 14:11 15857背景 考虑到公司应用中数据库访问的多 ... -
ajax 乱码
2011-07-26 14:24 1102// 异步通过订单获得订单明细,用于商品价格修改 @ ... -
freemarker 格式化
2011-07-05 14:06 3086freemarker数据格式化问题(即数值超过四位数时有逗号) ... -
object references an unsaved transient instance - save the transient instanc
2011-01-17 18:09 6408出现这个错误的原因是在保存该对象前,发现该对象包含有其他空的对 ... -
防止浏览器缓存css,js静态文件[转]
2011-01-11 16:58 2250什么情况下,要禁止静态文件缓存: 1、经常可能要改动的 js ... -
java 开源cms opencms的使用,如何去掉两个/opemcms路径的方法
2010-07-15 21:00 4696哈哈。。。经过本人测试成功: 买空间的朋友,因为无法配 ... -
通过百度获取天气预报[转]
2010-05-06 15:26 1474public class Getweather { ... -
javascript 跳转新发现 window.open 乱码处理
2010-04-09 20:57 14105搞了两三天的乱码处理,试了很多方法,过滤器啊,编码转换啊,试来 ... -
解决 连接关闭问题
2010-03-12 09:57 1416root cause org.springframewor ... -
远程登录不了em
2009-12-18 10:25 1173修改一下hostlist.ini列表就行了。 -
今天发现
2009-12-08 20:49 1187今天搞了半天jstl不显示 感觉太奇怪了,平时框架也没有问题啊 ... -
java 开发中 java的System.getProperty()方法可以获取的值
2009-11-13 16:54 1400java.version Java ... -
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
2009-11-09 22:05 43527所谓懒加载(lazy)就是延时加载,延迟加载。 什么时候用懒 ... -
SVN在linux下的安装 学习
2009-11-09 17:56 1270SVN在linux下的安装 ...
相关推荐
json-lib-2.4-jdk15.jar下载,json-lib是一款简单易用的Java JSON库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。json-lib体积小、无依赖,性能表现也不错,适合在各种Java项目中使用。 ...
4. **XML和JSON之间的转换**:json-lib还支持XML和JSON之间的互转,这对于处理既有XML又有JSON数据的系统非常有用。 5. **自定义转换规则**:用户可以通过实现`JsonConfig`类中的方法,自定义Java对象到JSON的转换...
在实际应用中,使用JSON-lib进行JSON操作的一般步骤包括: 1. 添加依赖:在项目中引入`json-lib-2.2.3-jdk15.jar`,如果使用Maven或Gradle,需要将库添加到构建配置中。 2. 创建JSON对象:使用JSON-lib提供的方法...
2. **XML与JSON互转**:json-lib还支持XML与JSON之间的转换,这在处理不同数据格式时非常有用。 3. **自定义序列化**:通过实现JSONAware接口或使用JSONSerializer的transform方法,开发者可以定制JSON序列化过程,...
4. **兼容性**:JSON-lib兼容Java SE和Java EE环境,可以方便地在Web应用、企业服务和桌面应用中使用。 5. **错误处理**:提供了详细的异常处理机制,帮助开发者快速定位和解决问题。 在实际应用中,使用JSON-lib...
2. **XML与JSON互转**:除了基本的Java对象与JSON之间的转换,`json-lib`还提供了XML到JSON以及JSON到XML的转换功能,使得两种数据交换格式可以无缝对接。 3. **支持多种数据类型**:`json-lib`不仅支持基本的数据...
在Java开发中,`json-lib` 被用作处理JSON的一种工具,特别是当项目中不使用或不方便使用如Gson、Jackson等其他JSON库时。 在标题中提到的"json-lib jar和所有依赖的jar",这通常是指`json-lib`库本身及其依赖的第...
在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...
在使用json-lib时,通常会涉及到以下几个关键概念: 1. **JsonArray**: 表示JSON数组,可以包含零个或多个JsonObject或其他Json元素。 2. **JsonObject**: 表示JSON对象,由键值对组成,键是字符串,值可以是各种...
`json-lib`库的使用使得Java开发者在处理JSON数据时更加便捷,但需要注意的是,随着Java生态的发展,现在更流行的是使用Jackson、Gson或Google的AutoValue库来处理JSON,它们提供了更多特性和更好的性能。...
4. **XML与JSON互转**:除了基本的JSON操作,`json-lib`还提供了XML与JSON之间的转换功能,这对于需要在XML和JSON之间进行数据交换的应用非常有用。 5. **依赖包的集成**:`json-lib-2.3-jdk15`开发包包含了所有...
要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml <groupId>net.sf.json-lib</groupId> <artifactId>json-lib...
在实际开发中,json-lib-2.4的使用通常涉及以下步骤: 1. **导入依赖**:将json-lib-2.4的jar包添加到项目的类路径中,或者在Maven或Gradle等构建工具中声明依赖。 2. **创建JSON对象**:使用`...
JSON-lib是一个Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,以及将JSON数据转换回Java对象。这个库提供了多种方法来处理JSON数据,使得在Java应用程序中与JSON交互变得更加简单。JSON是一...
1、json的核心包:json-lib-2.4-jdk15.jar; 2、json-lib-2.4-jdk15.jar依赖的jar包:commons-beanutils-1.9.3.jar,commons-collections-3.2.2.jar,commons-lang-2.6.jar,commons-logging-1.2.jar,ezmorph-1.0.6...
<groupId>net.sf.json-lib</groupId> <artifactId>json-lib <version>2.4 <classifier>jdk15 或者直接下载这个包
- **兼容性**:`json-lib-2.3-jdk15`特别针对JDK 1.5进行了优化,保证了在使用此版本Java环境的应用程序中的良好运行。 - **性能提升**:相比早期版本,2.3版可能进行了性能优化,提高了JSON序列化和反序列化的速度...
6. `commons-logging-1.1.1.jar`:Apache Commons Logging,是一个通用的日志记录抽象层,使得`json-lib`可以方便地使用不同的日志实现,如Log4j或Java内置的日志系统,进行调试和错误处理。 综上所述,`json-lib`...
在这个“json-lib-2.4-jdk13对应jar包大全”中,包含了以下6个关键的jar包,它们是json-lib运行和功能完整的必要组成部分: 1. **commons-collections-3.2.2.jar**:Apache Commons Collections库提供了对集合框架...
标题中的"ezmorph-1.0.6.jar"和"json-lib-2.2.2-jdk15.rar"指的是两个不同的Java库,用于处理数据转换和JSON操作。ezmorph是一个Java库,提供了对象到对象的转换功能,而json-lib是另一个库,专门用于处理JSON...