- 浏览: 936455 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
使用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;
}
}
使用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;
}
}
发表评论
-
CDN加速WordPress触发CORS导致跨域加载失败
2018-04-09 17:36 1563这两天折腾CDN加速来提升自己博客的访问速度,用的阿里云C ... -
PV模型
2017-02-05 18:05 717你想建设一个能承受500万PV/每天的网站吗? 500万PV ... -
App开发一些总结
2016-04-05 17:48 2595架构因人而异,不同的架构师大多会有不同的看法;架构也因项目 ... -
解决fastjson内存对象相互应用导入json字符串出现错误问题
2016-04-05 17:48 1533日常在使用FastJson的时候可能很少会 ... -
分布式配置统一管理平台-Windows
2016-02-02 14:10 2719这里主要使用到disconf分布式配置管理平台 支持wind ... -
Codis使用入门
2016-01-15 16:35 1726首先严重吐槽 在使用Coids遇到无数坑 坑 坑 ... ... -
高可用消息队列框架ZBUS
2016-01-13 10:47 5969我们在日常开发中可以需要用到消息队列 当然我们完全可以自己 ... -
实现消息推送核心搭建(升级版)
2016-01-08 15:43 1719前面已经实现了第一版 ... -
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
2015-12-30 15:55 10536这里在开始搭建环境之前请搭建先熟悉了解Dubbox、Red ... -
java 实现微信搜索附近人功能
2015-03-25 18:07 4925最近给andorid做后台查询数据功能,有一个需求是模仿微信 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
Javascript: unterminated string literal解决方法
2014-02-06 16:47 1971Javascript: unterminated strin ... -
身份证验证 80秒13亿数据校验
2014-01-15 13:41 9793/** * @Company asiainfo-linkag ... -
网页上播放视频的免费的播放器_CKPlayer
2013-12-12 14:17 2221今天在工作的过程中遇到一个功能:在网页中加入视频播放器 ... -
Ehcache 整合Spring 使用页面、对象缓存
2013-12-12 13:04 1286Ehcache 整合Spring 使用页面、对象缓存 E ... -
js 手机验证
2013-12-11 13:25 703** * 手机号:目前全国有27种手机号段。 * 移动有16 ... -
Freemarker使用
2013-12-04 16:57 1127以下内容全部是网上收 ... -
Hibernate数据缓存策略
2013-11-27 23:28 1129(一)hibernate数据缓存策略 缓存是数据 ... -
国内开源cms
2013-07-03 16:51 7http://www.jeecms.com/ -
FCkediter 整个struct2
2013-05-19 18:52 1392在这里总结一下今天使用Fckediter 和在整合Struct ...
相关推荐
标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...
`json-lib` 是一个 Java 库,它提供了将 JSON 格式的数据转换为 Java 对象,以及将 Java 对象转换为 JSON 格式数据的功能。在 Java 开发中,`json-lib` 是一个常用的 JSON 处理工具,尤其适用于需要处理复杂 JSON ...
1. 简单易用:json-lib的API简单易于使用,一般只需要一行或两行代码就可以完成Java对象和JSON的相互转换。 2. 支持对象图:可以将复杂的对象层次结构与JSON相互转换,支持List、Map、数组等类型。 3. 支持注解:支持@...
json-lib是一个Java库,它提供了一种方便的方式来序列化和反序列化Java对象为JSON格式,以及将JSON数据转换回Java对象。 json-lib-2.4-jdk15.jar是json-lib的一个特定版本,适用于JDK 1.5环境。这个版本的库包含了...
1. **易用性**:JSON-lib提供了简单直观的API,使得Java对象与JSON之间的转换变得简单。例如,可以使用`net.sf.json.JSONObject`来表示一个JSON对象,`net.sf.json.JSONArray`表示JSON数组。 2. **灵活性**:它支持...
JSON库如json-lib-2.4是Java开发者在处理JSON数据时的重要工具,它提供了一系列API,使得JSON与Java对象之间的转换变得更加简单。本文将深入探讨json-lib-2.4及其在Java开发中的应用。 首先,json-lib-2.4是一个...
json-lib-2.3.jar是这个库的一个版本,用于支持将Java对象转换成JSON格式和将JSON数据反序列化为Java对象。 标题中提到的"json-lib-2.3.jar"是json-lib库的一个具体实现,主要包含了一系列处理JSON的类和方法。这个...
在文件列表中的"jsonlib需要jar包",这可能是指包含了`json-lib`库及其所有依赖的JAR文件。在实际项目中,将这些JAR文件添加到项目的类路径(classpath)中,就可以使用`json-lib`提供的功能,而无需通过Maven或其他...
在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...
`json-lib`是一个Java库,它提供了一种将Java对象转换为JSON表示,并将JSON数据转换回等效Java对象的方法。`json-lib-2.4-jdk15.jar`是这个库的一个特定版本,适用于JDK 1.5环境。 在Java开发中,`json-lib`库提供...
JSON-lib是一个Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,以及将JSON数据转换回Java对象。这个库提供了多种方法来处理JSON数据,使得在Java应用程序中与JSON交互变得更加简单。JSON是一...
1. **JSON序列化与反序列化**:json-lib允许将Java对象转换为JSON字符串,反之亦然。例如,你可以将一个Java的HashMap转换成JSON格式,便于在网络上传输,或者将接收到的JSON字符串解析成Java对象,便于进一步处理。...
JSON库如`json-lib`则提供了将Java对象转换为JSON格式和从JSON字符串反序列化为Java对象的功能。`json-lib-2.4-jdk15`是JSON库的一个特定版本,专为JDK 1.5设计,确保在该环境下能够正常运行。 `json-lib`库主要...
`json-lib`是一个Java库,它提供了将Java对象转换为JSON格式,以及从JSON字符串反序列化回Java对象的功能。`json-lib-2.3-jdk15`是这个库的一个特定版本,兼容JDK 1.5,这意味着它可以在运行JDK 1.5或更高版本的Java...
JSON Lib是一个Java库,它提供了将Java对象转换为JSON格式,以及将JSON文本解析回等效Java对象的功能。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java类等,使得在Java应用程序中处理JSON变得简单。 ...
`json-lib`是一个Java库,它提供了一种将Java对象转换为JSON格式,以及将JSON数据还原为Java对象的能力。在Web开发中,这个功能非常重要,因为服务器端处理的数据需要以某种形式传递到客户端,JSON由于其简洁性和...
`json-lib-2.4 jar`是JSON-Lib的一个版本,它是一个针对Java的开源项目,用于在Java对象和JSON数据之间进行转换。这个版本兼容JDK 15及更高版本,意味着它能够很好地运行在较新的Java环境中。这个jar包包含了一系列...
5. **自定义转换规则**:如果默认的转换规则不能满足需求,JSON-Lib允许开发人员自定义转换策略,以处理特殊类型的Java对象。 在实际开发中,JSON-Lib通常与其他Java Web框架结合使用,如Spring MVC,以实现RESTful...
例如,你可以创建一个Java对象,然后使用JSONObject将其转换为JSON: ```java Map, String> map = new HashMap(); map.put("name", "John"); map.put("age", "30"); JSONObject jsonObject = JSONObject.fromObject...
3. **commons-beanutils-1.9.3.jar**:Apache Commons BeanUtils库简化了JavaBean属性的访问和操作,它使得处理Java对象的属性变得更加方便,这对于json-lib在转换Java对象到JSON时非常有用。 4. **json-lib-2.4-...