JSONLib-JsonConfig探讨

2023-10-12 10:58
文章标签 探讨 jsonlib jsonconfig

本文主要是介绍JSONLib-JsonConfig探讨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用JSONLib包的应用中,我们实际情况会考虑过滤其某些属性或格式其某些属性。那么如何实现,JSONlib包提供了一个JsonConfig类扩展结构,供开发人员按照实际情况的需要实现Bean2JSONObject的处理过程。
作者写了一个处理Date格式与过滤掉其中一个属性的案例,可以参考。
另外在探讨过程中,作者发现jsonlib不能处理内部类。


package com.china;
import java.util.Date;
public class Teacher implements java.io.Serializable {
/**
* 
*/
private static final long serialVersionUID = 1L;
private  String name ="haibing.xiao";
private int age=27  ;
private Boolean sex =true ;
private Date birthday =new Date();
private Date workDate =new Date();
public Date getWorkDate() {
return workDate;
}
public void setWorkDate(Date workDate) {
this.workDate = workDate;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public Boolean getSex() {
return sex;
}
public void setSex(Boolean sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.china;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
import net.sf.json.util.PropertyFilter;
/**
* @author haibing.xiao
* @since jdk1.6
* <p>  className :SimpleJSONlib  ,Teacher</p>
* */
public class SimpleJSONlib {
public static void main(String[] args) {
JsonConfig  jsonConfig =new JsonConfig() ;
/**    format classType Date return 2013-01-17*/
jsonConfig.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {
@Override
public Object processObjectValue(String key, Object value, JsonConfig arg2) {
// TODO Auto-generated method stub
return new SimpleDateFormat("yyyy-MM-dd").format(value);
}
@Override
public Object processArrayValue(Object value, JsonConfig arg1) {
// TODO Auto-generated method stub
return value;
}
});
/** filter  filedName  workDate*/
jsonConfig.setJavaPropertyFilter(new PropertyFilter() {
@Override
public boolean apply(Object source, String name, Object value) {
// TODO Auto-generated method stub
if("workDate".equals(name)){
return true ;
}
return false;
}
});
List<Teacher> list =new ArrayList<Teacher>();
list.add(new Teacher());
list.add(new Teacher());
list.add(new Teacher());
System.out.println(JSONArray.fromObject(list.toArray(), jsonConfig).toString());
}
}

这篇关于JSONLib-JsonConfig探讨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195374

相关文章

一台电脑对应一个IP地址吗?‌探讨两台电脑共用IP的可能性

在当今数字化时代,‌IP地址作为网络世界中的“门牌号”,‌扮演着至关重要的角色。‌它负责在网络上唯一标识每一台设备,‌使得数据能够在庞大的互联网中准确无误地传输。‌然而,‌对于IP地址与电脑之间的对应关系,‌许多人可能存有疑惑:‌一台电脑是否必须对应一个IP地址?‌两台电脑又是否可以共用一个IP地址呢?‌本文将深入探讨这些问题,‌带您一窥IP地址背后的奥秘。‌ 一台电脑对应一个IP地址吗?‌

使用Python控制Excel应用:打开与关闭工作簿的技术性探讨

目录 引言 一、安装必要的库 1. xlwings 2. openpyxl 二、使用xlwings打开和关闭Excel工作簿 2.1 启动和退出Excel 2.2 打开和关闭工作簿 2.3 创建新工作簿 三、使用openpyxl打开和关闭Excel工作簿 3.1 打开工作簿 3.2 保存和关闭工作簿 四、案例分析 4.1 读取Excel文件中的数据 4.2 写入数据到E

Kafka的分区数与多线程消费探讨

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 典型的high-level Consumer的API如下: Properties props = new Properties(); props.put("zookeeper.connect", "xxxx:2181"); props.put("zookeeper.conne

java 深拷贝探讨

java 深拷贝探讨 本文将讨论以下4个问题 1. java Cloneable接口实现深拷贝2. java 序列化实现深拷贝3. 号称最快的深拷贝二方库cloning源码分析4. 几种拷贝方式速度的比较 深拷贝的概念本文就不说了。在C++中实现深拷贝一般情况下重载赋值操作符 “=” 来实现同一个类的对象间的深拷贝,所以很自然的在java中我们也同样可以定义一个copy函数,在函数内

1、快速响应市场和技术变化的深度探讨

在当今技术飞速发展和市场竞争日益激烈的时代,企业面临的最大挑战之一就是如何快速响应市场和技术变化。市场需求不断变化,新技术层出不穷,传统的静态计划和僵化的管理方式已经无法满足快速变化的需求。本文将深入探讨“快速响应市场和技术变化”的关键点,从信息流通、组织架构、决策机制、技术应用到文化和领导力进行详细分析,帮助企业建立高效的响应机制。 1. 信息流通和感知能力建设 信息流通和感

国内PFMEA的实施困境与价值探讨

在国内,PFMEA(过程失效模式及影响分析)作为一种重要的质量管理工具,其推广与应用在提升企业产品质量、减少生产损失以及增强客户满意度方面展现出了巨大的潜力。然而,尽管其重要性被广泛认可,PFMEA的实施过程却面临着诸多困境,这些困境不仅限制了其效能的充分发挥,也对企业整体的质量管理水平提升构成了挑战。本文,天行健六西格玛顾问旨在探讨国内PFMEA的实施困境,并分析其潜在价值,以期为企业提供有益的

如何应对日益复杂的网络攻击?Edge SCDN(边缘安全加速)的应用场景探讨

CDN作为提高网站访问速度和内容分发效率的安全与加速产品,它能够有效减少服务器负载、降低网络延迟,从而提升用户体验和网站的可用性。然而,随着互联网技术的发展和网络攻击形式的日益复杂多样,用户对数据安全性和隐私保护的要求不断提高,对网站和应用的要求也不再只停留在加速上。 当传统CDN逐渐没办法满足当前企业对全方位网络攻击防护的需求时,不少安全厂商开始推出新一代CDN产品,开始将安全防护机制融入

JAVA - 关于防重复提交探讨

1、前端提交按钮做单次点击 2、后端接收判断请求的数据包,生成唯一key存redis,设置几秒的过期时间(缺陷:带时间戳的数据,需要做些逻辑判断) 3、后端代码逻辑redis分布式锁(缺陷:redis崩溃后会造成脏数据) 4、数据库唯一值,采用code+deltime组合唯一,deltime=0代表有效数据,其他是删除数据,删除的时候把当前时间更新到deltime字段,到秒或者毫秒级

【通讯协议数据采用大/小端存储的探讨】

前言 在嵌入式系统和网络通信中,数据的字节序是一个不可忽视的细节。不同的设备可能采用不同的字节序,常见的有大端和小端两种。小端字节序,即最低有效字节存储在最低的内存地址,在网络协议中应用普遍。本文将通过一个简单的示例,探讨如何在C语言中实现小端存储,并构建符合特定通讯协议的数据包。 实例 1.示例代码 以下是一个使用C语言编写的示例程序,该程序演示了如何将数据以小端存储的方式复制到通讯帧中:

[001-07-001].Redis7缓存双写一致性之更新策略探讨

1、面试题: 1.只要使用缓存,就可能会涉及到redis缓存与数据库双存储双写,只要是双写,就存在数据一致性问题,那么是如何解决数据一致性问题的2.双写一致性,你先动缓存redis还是数据库MySQL,哪一个?why3.延时双删做过吗?会有哪些问题4.有这么一种情况,微服务查询redis无,mysql有,为了保证数据的一致性回写redis需要注意什么?双检加锁你了解吗?如何尽量避免缓存击穿?