使用JSON-LIB可以极大的简化JAVA对象转换成JSON对象所需进行的操作,更可以避免人工操作生成JSON对象字符串时带来的麻烦和误操作:
使用JSON-LIB,首先要有几个支持的包:
http://json-lib.sourceforge.net下载json-lib-1.1-jdk15.jar
commons-lang.jar、commons-logging.jar,commons-beanutils.jar 这些包可在tomcat/comon/lib下找到
EZMorph 下载地址http://ezmorph.sourceforge.net
morph-1.0.1 下载地址:http://morph.sourceforge.net
使用例子:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JSONTest {
public static void main(String[] args) {
JSONTest j = new JSONTest();
j.ObjectList2json();
}
public void ObjectList2json(){
Map map = new HashMap();
List jlist = new ArrayList();
JSONTestBean bean1 = new JSONTestBean("zhangbo","123123");
JSONTestBean bean2 = new JSONTestBean("lisi","65489");
Props props = new Props("127.0.0.1","8008");
jlist.add(bean1);
jlist.add(bean2);
map.put("Props", props);
map.put("jsonObjectList", jlist);
JSONArray jsonArray = JSONArray.fromObject(map);
System.out.println(jsonArray);
}
public void arr2json() {
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray = JSONArray.fromObject(boolArray);
System.out.println(jsonArray);
// prints [true,false,true]
}
public void list2json() {
List list = new ArrayList();
list.add("first");
list.add("second");
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
// prints ["first","second"]
}
public void createJson() {
JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']");
System.out.println(jsonArray);
// prints ["json","is","easy"]
}
public void map2json() {
Map map = new HashMap();
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 json = JSONObject.fromObject(map);
System.out.println(json);
// prints
// ["name":"json","bool":true,"int":1,"arr":["a","b"],"func":function(i){
// return this.arr[i]; }]
}
public void bean2json() {
JSONObject jsonObject = JSONObject.fromObject(new JSONTestBean("zhangbo","234234"));
System.out.println(jsonObject);
/*
* prints
* {"func1":function(i){ return this.options[i];
* },"pojoId":1,"name":"json","func2":function(i){ return
* this.options[i]; }}
*/
}
public void json2bean() {
String json = "{name=\"json2\",func1:true,pojoId:1,func2:function(a){ return a; },options:['1','2']}";
// JSONObject jb = JSONObject.fromString(json);
// JSONObject.toBean(jb, MyBean.class);
System.out.println();
}
}
其它两个测试实体Bean:
public class JSONTestBean {
private String userName;
private String password;
public JSONTestBean() {
}
public JSONTestBean(String username, String password) {
this.userName = username;
this.password = password;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
//===================================================
public class Props {
private String ip;
private String port;
public Props() {
}
public Props(String ip, String port) {
this.ip = ip;
this.port = port;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
}
使用起来很方便,有了JSON-LIB的支持,可以使开发者轻松构建起基于JSON的AJAX应用程序
附加:关于使用JSON-LIB转换带有DATE类型的对象需要额外的一些设置
JsonConfig cfg=new JsonConfig();
cfg.registerJsonValueProcessor(java.util.Date.class, new JsonValueProcessorImpl());
cfg.registerJsonValueProcessor(java.sql.Date.class, new JsonValueProcessorImpl());
JSONObject obj = JSONObject.fromObject(info,cfg);
JsonValueProcessorImpl为实现了源代码中的接口JsonValueProcessor
import java.text.SimpleDateFormat;
import java.util.Date;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
public class JsonValueProcessorImpl implements JsonValueProcessor{
private String format="yyyy-MM-dd";
public JsonValueProcessorImpl(){
}
public JsonValueProcessorImpl(String format){
this.format=format;
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
String[] obj={};
if(value instanceof Date[]){
SimpleDateFormat sf=new SimpleDateFormat(format);
Date[] dates=(Date[])value;
obj =new String[dates.length];
for (int i = 0; i < dates.length; i++) {
obj[i]=sf.format(dates[i]);
}
}
return obj;
}
public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
if(value instanceof Date){
String str=new SimpleDateFormat(format).format((Date)value);
return str;
}
return value.toString();
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
}
这也只是实现了将DATE类型转换成yyyy-MM-dd的格式...测试一下吧!~~~
分享到:
相关推荐
1. 简单易用:json-lib的API简单易于使用,一般只需要一行或两行代码就可以完成Java对象和JSON的相互转换。 2. 支持对象图:可以将复杂的对象层次结构与JSON相互转换,支持List、Map、数组等类型。 3. 支持注解:支持@...
NULL 博文链接:https://yxgyh.iteye.com/blog/392657
json-lib-2.4版本全套相应的依赖jar包,java转换json,页面传值必备神器
json-lib 开发指南 技术指南 json json-lib框架,可以完成Java对象到JSON的相互转换,以及简单转换XML。
使用json-lib重写toJsonString方法,从而方便处理后台数据显示到前台的情况。
能够帮助大家在java类实现json字符串与java对象间的转换
JSON-lib框架,转换JSON、XML不再困难
JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使 JSON 成为理想的数据交换语言。 •JSON 的两种结构 1.“名称/值”...
JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。
javajson转换包(json-lib-2.4-jdk15.jar,ezmorph-1.0.6.jar,commons-logging-1.1.jar,commons-lang-2.2.jar,commons-httpclient-3.1.jar,commons-digester.jar,commons-collections-3.2.jar,commons-beanutils-...
完整json lib 2.4的jar包,包括: commons-beanutils-1.9.3.jar commons-collections-3.2.jar commons-lang-2.3.jar ...Java开发中对象转换json需要,比json.jar好用,比如JSONArray多了fromObject函数等
JSON 字符串 与 java 对象的转换 包括说明代码和需要的jar包 commons-beanutils-1.7.0.jar commons-lang-2.1.jar ezmorph-1.0.2.jar json-lib-1.1-jdk15.jar 之前找了一些,说是只需要引入json-lib-1.1-jdk15.jar...
java对象和json字符串转换所需的6个jar包,包括 commons-beanutils-1.8.0.jar, commons-collections-3.2.1.jar, commons-lang-2.4.jar, commons-logging.jar, ezmorph-1.0.6.jar, json-lib-2.4-jdk15.jar
NULL 博文链接:https://chenyajie.iteye.com/blog/2046009
json-lib-2.4-jdk15工具包,Java实现JSON、XML的转换,文件中包含json-lib所需jar包、API以及源码
json-lib-2.4-jdk15工具包,Java实现JSON、XML的转换,文件中包含json-lib所需jar包、API以及源码
使用JSON-LIB转换JAVA对象(转载) jave对象转json json字符串转java对象demo 下载直接导入Eclipse
json-java对象转换包,实现客户端与JAVA服务器数据的轻松对接
解压后可用于实现java转换json数据
java json转换工具类 json-lib-2.4-jdk15及其依赖包