转自: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 );
分享到:
相关推荐
使用json时候将会用到的一个jar包,发现这个包在网上提供的比较少.缺少这个包可能导致Could not initialize class net.sf.json.JsonConfig 使用json时候将会用到的一个jar包,发现这个包在网上提供的比较少.缺少这个...
`net.sf.json` 是一个广泛使用的开源JSON库,主要用于Java应用程序中处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,它使得人和机器都能容易地读写数据,通常用于Web服务和客户端...
JSONArray.fromObject(map)报错:Could not initialize class net.sf.json.JsonConfig。ireport 需要高于2.1版本的包。于是就找了这些包。最后2.2.2适合
例如,你可以使用`JSONArray`、`JSONObject`等类进行JSON的创建、解析和操作。 总的来说,`net.sf.json`库是Java开发中处理JSON数据的一个强大工具,能够帮助开发者轻松地进行JSON数据的序列化和反序列化,提高了...
在Swift中,虽然标准库提供了JSONSerialization类来处理JSON,但直接使用可能涉及较多手动处理和错误检查,尤其是在处理大量配置数据时。JSONConfig库则通过提供更高级别的抽象和便利方法,使得JSON配置文件的读取变...
首先,文档中使用的库是`net.sf.json`,这是一个开源的Java库,它提供了对JSON的全面支持,包括序列化和反序列化Java对象到JSON,以及从JSON解析回Java对象。具体来说,`JSONObject`类代表一个JSON对象,而`...
在这个示例中,我们通过`JSONArray.fromObject()`将JSON字符串转换为`JSONArray`对象,然后使用`JSONSerializer.toJava()`方法将该数组转换为`PropertyT`类型的对象数组。 #### 对象数组转JSON 接下来,我们来看看...
`json-lib`使用它来记录执行过程中的信息,帮助调试和排查问题。 4. **ezmorph-1.0.6**:EZMorph是一个Java库,用于动态对象转型。在处理JSON时,可能需要将JSON数据转化为不同的Java类型,这时就会用到EZMorph的...
在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端数据传输。...以上内容涵盖了在Java中使用net.sf.json包处理JSON数据的核心知识,希望对你在实际开发中有所帮助。
在Java中,为了方便地进行JSON与Java对象之间的转换,我们常常会使用到一些库,比如`json-lib`。这个库提供了丰富的API,使得我们可以轻松地将Java对象转化为JSON字符串,以及将JSON字符串反序列化为Java对象。 ###...
因为再高版本中没有NestableRuntimeException,但是在JSON处理时需要NestableRuntimeException这个类,所以我就单独把2.6的exception提取出来了,让高版本有具备NestableRuntimeException,目前我在使用过程中没有...
* 从一个JSON 对象字符格式中得到一个java对象 * * @param jsonString * @param pojoCalss * @return */ @SuppressWarnings("unchecked") public static <T> T jsonToObject(String jsonString, Class<T> ...
### Java遍历JSON树知识点详解 ...通过以上介绍,我们可以看到,在Java中遍历JSON树并不复杂,但确实需要理解JSON的基本结构以及所使用的库的具体用法。希望本文能帮助你更好地理解和掌握这一技能。
本资源提供了将GRIB2数据转换为JSON格式的工具,这对于那些需要在JSON友好环境中处理GRIB2数据的开发者来说非常有用。转换工具有助于简化数据解析和可视化的过程,使得数据更容易被JavaScript或Python等编程语言处理...
这样,当`Address`对象在转换过程中遇到时,会使用我们自定义的转换函数,生成符合需求的JSON字符串。 测试这部分功能,你可以编写一个`TestJsonLib`测试类,包含一个测试方法,模拟上述代码的执行流程,确保自定义...
文中提到使用JsonConfig来设置JsonPropertyFilter,这样可以在序列化过程中过滤掉不需要的属性或对象。这是一种更加精细的控制方式,可以避免在JSON中暴露不应该公开的数据。 5. Hibernate配置关系映射: 为了更好...
配置文件JsonConfig 是一个简单的配置... 只需在代码中使用动态配置对象,如下所示: Console . WriteLine ( " name: {0} " , JsonConfigManager . DefaultConfig . name );Console . WriteLine ( " host: {0} " , Json
在Java世界中,为了处理JSON数据,出现了许多库,其中`json-lib`是一个非常受欢迎的选择。 `json-lib`是一个Java库,它提供了丰富的API来帮助开发者将Java对象转换为JSON格式,同时也能将JSON字符串反序列化为Java...
下面将详细介绍如何使用JSON-Lib在Java中处理JSON对象。 首先,为了使用JSON-Lib,你需要将它添加到你的项目依赖中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
JsonConfig自述文件关于JsonConfig是一个易于使用的配置库,它允许C#/。NET应用程序使用基于JSON的配置文件,而不必使用繁琐的web.config / application.config xml文件。 它基于JsonFX和C#4.0动态功能。 允许将...