`

JSON 中JsonConfig的使用

阅读更多
转自:http://hi.baidu.com/zhu557/item/2161531a5667937d7b5f25bd

     我们通常对一个Json串和java对象进行互转时,经常会有选择性的过滤掉一些属性值,而json-lib包中的JsonConfig为我们提供了这种功能,具体实现方法有以下几种。(1)建立JsonConfig实例,并配置属性排除列表,(2)用属性过滤器,(3)写一个自定义的JsonBeanProcessor.

1. 实现JSONString接口的方法

public class Person implements JSONString { 
private String name; 
private String lastname; 
private Address address; 

// getters & setters 

public String toJSONString() {
return "{name:'"+name+"',lastname:'"+lastname+"'}";
}
}


2.第二种方法通过jsonconfig实例,对包含和需要排除的属性进行方便的添加或删除

public class Person { 
private String name; 
private String lastname; 
private Address address; 

// getters & setters 


JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.setExclusions( new String[]{"address"}); 
Person bean = new Person("jack","li"); 
JSON json = JSONSerializer.toJSON(bean, jsonConfig); 

3. 使用propertyFilter可以允许同时对需要排除的属性和类进行控制,这种控制还可以是双向的,也可以应用到json字符串到java对象

public class Person { 
private String name; 
private String lastname; 
private Address address; 

// getters & setters 


JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.setJsonPropertyFilter( new PropertyFilter(){ 

public boolean apply(Object source/* 属性的拥有者 */, String name /*属性名字*/, Object value/* 属性值 */ ){ 
// return true to skip name 
return source instanceof Person && name.equals("address"); 

}); 
Person bean = new Person("jack","li");
JSON json = JSONSerializer.toJSON( bean, jsonConfig ) 

4. 最后来看JsonBeanProcessor,这种方式和实现JsonString很类似,返回一个代表原来的domain类的合法JSONObject

public class Person { 
private String name; 
private String lastname; 
private Address address; 

// getters & setters 


JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.registerJsonBeanProcessor( Person.class, new JsonBeanProcessor(){ 

public JSONObject processBean( Object bean, JsonConfig jsonConfig ){ 
if(!(bean instanceof Person)){ 
return new JSONObject(true); 

Person person = (Person) bean; 
return new JSONObject() .element( "name", person.getName()) .element( "lastname", person.getLastname()); 

}); 

Person bean = new Person("jack","li");
JSON json = JSONSerializer.toJSON( bean, jsonConfig );
分享到:
评论

相关推荐

    ezmorph-1.0.6.jar

    使用json时候将会用到的一个jar包,发现这个包在网上提供的比较少.缺少这个包可能导致Could not initialize class net.sf.json.JsonConfig 使用json时候将会用到的一个jar包,发现这个包在网上提供的比较少.缺少这个...

    net.sf.json依赖包

    `net.sf.json` 是一个广泛使用的开源JSON库,主要用于Java应用程序中处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,它使得人和机器都能容易地读写数据,通常用于Web服务和客户端...

    json-lib-2.1 2.2 2.3 2.4-jdk15

    JSONArray.fromObject(map)报错:Could not initialize class net.sf.json.JsonConfig。ireport 需要高于2.1版本的包。于是就找了这些包。最后2.2.2适合

    JSON net.sf.json jar包

    例如,你可以使用`JSONArray`、`JSONObject`等类进行JSON的创建、解析和操作。 总的来说,`net.sf.json`库是Java开发中处理JSON数据的一个强大工具,能够帮助开发者轻松地进行JSON数据的序列化和反序列化,提高了...

    swift-JSONConfig-一个Swift3JSON配置读取库

    在Swift中,虽然标准库提供了JSONSerialization类来处理JSON,但直接使用可能涉及较多手动处理和错误检查,尤其是在处理大量配置数据时。JSONConfig库则通过提供更高级别的抽象和便利方法,使得JSON配置文件的读取变...

    java中json处理的使用.doc

    首先,文档中使用的库是`net.sf.json`,这是一个开源的Java库,它提供了对JSON的全面支持,包括序列化和反序列化Java对象到JSON,以及从JSON解析回Java对象。具体来说,`JSONObject`类代表一个JSON对象,而`...

    json转对象数组与对象数组转json --Java

    在这个示例中,我们通过`JSONArray.fromObject()`将JSON字符串转换为`JSONArray`对象,然后使用`JSONSerializer.toJava()`方法将该数组转换为`PropertyT`类型的对象数组。 #### 对象数组转JSON 接下来,我们来看看...

    jsonlib需要jar包

    `json-lib`使用它来记录执行过程中的信息,帮助调试和排查问题。 4. **ezmorph-1.0.6**:EZMorph是一个Java库,用于动态对象转型。在处理JSON时,可能需要将JSON数据转化为不同的Java类型,这时就会用到EZMorph的...

    Java中使用Json的net.sf.json包

    在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端数据传输。...以上内容涵盖了在Java中使用net.sf.json包处理JSON数据的核心知识,希望对你在实际开发中有所帮助。

    json_lib使用实例:java对象与json字符串的互转

    在Java中,为了方便地进行JSON与Java对象之间的转换,我们常常会使用到一些库,比如`json-lib`。这个库提供了丰富的API,使得我们可以轻松地将Java对象转化为JSON字符串,以及将JSON字符串反序列化为Java对象。 ###...

    独立版commons-lang-2.6-exception,解决缺少NestableRuntimeException

    因为再高版本中没有NestableRuntimeException,但是在JSON处理时需要NestableRuntimeException这个类,所以我就单独把2.6的exception提取出来了,让高版本有具备NestableRuntimeException,目前我在使用过程中没有...

    java jsonto对象互转

    * 从一个JSON 对象字符格式中得到一个java对象 * * @param jsonString * @param pojoCalss * @return */ @SuppressWarnings("unchecked") public static <T> T jsonToObject(String jsonString, Class<T> ...

    java遍历JSON树

    ### Java遍历JSON树知识点详解 ...通过以上介绍,我们可以看到,在Java中遍历JSON树并不复杂,但确实需要理解JSON的基本结构以及所使用的库的具体用法。希望本文能帮助你更好地理解和掌握这一技能。

    GRIB2 数据 转 JSON

    本资源提供了将GRIB2数据转换为JSON格式的工具,这对于那些需要在JSON友好环境中处理GRIB2数据的开发者来说非常有用。转换工具有助于简化数据解析和可视化的过程,使得数据更容易被JavaScript或Python等编程语言处理...

    使用json-lib自定义复杂类型转换为Json字符串

    这样,当`Address`对象在转换过程中遇到时,会使用我们自定义的转换函数,生成符合需求的JSON字符串。 测试这部分功能,你可以编写一个`TestJsonLib`测试类,包含一个测试方法,模拟上述代码的执行流程,确保自定义...

    JSON--List集合转换成JSON对象详解

    文中提到使用JsonConfig来设置JsonPropertyFilter,这样可以在序列化过程中过滤掉不需要的属性或对象。这是一种更加精细的控制方式,可以避免在JSON中暴露不应该公开的数据。 5. Hibernate配置关系映射: 为了更好...

    JsonConfig:基于json的配置框架

    配置文件JsonConfig 是一个简单的配置... 只需在代码中使用动态配置对象,如下所示: Console . WriteLine ( " name: {0} " , JsonConfigManager . DefaultConfig . name );Console . WriteLine ( " host: {0} " , Json

    json-lib.rar

    在Java世界中,为了处理JSON数据,出现了许多库,其中`json-lib`是一个非常受欢迎的选择。 `json-lib`是一个Java库,它提供了丰富的API来帮助开发者将Java对象转换为JSON格式,同时也能将JSON字符串反序列化为Java...

    java处理json对象

    下面将详细介绍如何使用JSON-Lib在Java中处理JSON对象。 首先,为了使用JSON-Lib,你需要将它添加到你的项目依赖中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...

    JsonConfig:使用JSON和C#4.0动态功能的简单配置库

    JsonConfig自述文件关于JsonConfig是一个易于使用的配置库,它允许C#/。NET应用程序使用基于JSON的配置文件,而不必使用繁琐的web.config / application.config xml文件。 它基于JsonFX和C#4.0动态功能。 允许将...

Global site tag (gtag.js) - Google Analytics