json-lib过滤属性

依赖jar:

commons-beanutils-1.9.3.jar?

commons-collections-3.1.jar

commons-lang-2.4.jar

commons-logging-1.2.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

直接上程序

1、Person.java:

import java.util.List;

/** * Created by Administrator on 2017/5/6. */public class Person {    private int id;    private String name;    private List<Address> addresses;

public int getId() {        return id;    }

public void setId(int id) {        this.id = id;    }

public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

public List<Address> getAddresses() {        return addresses;    }

public void setAddresses(List<Address> addresses) {        this.addresses = addresses;    }

@Override    public String toString() {        return "Person{" +                "id=" + id +                ", name=‘" + name + ‘\‘‘ +                ", addresses=" + addresses +                ‘}‘;    }}

2、Address.java:
public class Address {    private String name;

public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

@Override    public String toString() {        return "Address{" +                "name=‘" + name + ‘\‘‘ +                ‘}‘;    }}

3、测试程序
Person person = new Person();person.setId(1);person.setName("xiaoming");List<Address> addresses = new ArrayList<Address>();Address address = new Address();address.setName("xian");addresses.add(address);person.setAddresses(addresses);
//设置过滤字段  方法1 使用setJsonPropertyFilter
JsonConfig jsonConfig = new JsonConfig();PropertyFilter filter = new PropertyFilter() {    //参数1:person对象  如果有两个fieldName都是name,则都会被过滤,无法精确控制    public boolean apply(Object object, String fieldName, Object fieldValue) {        return fieldName.equals("name");    }};jsonConfig.setJsonPropertyFilter(filter);System.out.println(JSONObject.fromObject(person, jsonConfig).toString());

//方法2  过滤id
jsonConfig.setExcludes(new String[]{"id"}); //java

说明:这两这种方法,如果出现多个相同属性,设置了过滤后,会全部过滤掉,无法精确控制具体哪一个属性。
时间: 2024-10-21 00:44:39

json-lib过滤属性的相关文章

(转)DataRow的各种状态和DataView的两种过滤属性

DataRow的各种状态 http://www.cnblogs.com/zxjyuan/archive/2008/08/20/1271987.html 一个DataRow对象刚被创建之后(DataTable.NewRow())其状态是Detached,是孤立的一个存在. 所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable.Rows.Add(DataRow)方法将此DataRow添加到DataTable,DataRow添加到DataTable后, 这个Dat

获取JSON对象的属性值

1.问题背景 有一个json对象,其中有键值对,那怎样获取json对象中属性值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

获取JSON对象的属性名称

1.问题背景 一个json对象,是以键值对组成,通过循环json对象,获取json对象中的属性名称 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&

在Flex中使用JSON对象为属性赋值

JavaScript中,JSON的简洁和强大令人印象深刻.ActionScript3作为一种从JavaScript语言发展起来的语言,依然可以使用JSON. 依然可以var  object={a:1,b:”b”,c:”1111”};这样的JSON形式创建ActionScript对象. 在JavaScript中,我们常常在new 对象时,通过传入{……}这样的JSON数据方便地初始化对象. 在ActionScript中,我们依然可以这样做. package { public class Const

【转】Fastjson生成json时Null属性不显示

Fastjson生成json时Null属性不显示 举个例子 Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put("a",1); jsonMap.put("b",""); jsonMap.put("c",null); jsonMap.put("d","wuzhuti.cn

JSON lib 里JsonConfig详解

一,setCycleDetectionStrategy 防止自包含 /** * 这里测试如果含有自包含的时候需要CycleDetectionStrategy */ public static void testCycleObject() { CycleObject object = new CycleObject(); object.setMemberId("yajuntest"); object.setSex("male"); JsonConfig jsonCon

struts2 json插件中属性的配置

root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性 ignoreHierarchy 为false时表示要序列化根对象的所有基类 excludeProperties表示排除的序列化的属性 includeProperties表示哪些属性被序列化 excludeNullProperties表示是否去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值. 之前我在看李刚的书的时候认为includeProperties和exclu

[js]给Json动态增加属性

目标:给JSON数据任意增加新属性 环境:页面 技术:JS 实现: var JSON = {'name':'momojin','ega',22} JSON["isParent"]=true; alert(JSON.isParent); 任意增加,随意操作 childNodes[i]["isParent"]=true; 下标类的直接写在下标后面.

Json.Net 使用属性定义日期的序列化格式

如果一个实体类里所有的时间即DateTime类型的字段,都处理成统一格式的话,可以使用如下方式: IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; JsonConvert.SerializeObject(stu, Newtonsoft.Json.Formatting.Indented, timeFormat);

SoapUI对于Json数据进行属性值获取与传递

SoapUI的Property Transfer功能可以很好地对接口请求返回的数据进行参数属性获取与传递,但对于Json数据,SoapUI会把数据格式先转换成XML格式,但实际情况却是,转换后的XML格式往往根本没法用Xpath形式获取到指定的数据了.因此只能用Script脚本形式了. {"addUsersToDirectoryResponse":{"addUserToDirectoryResponse":[{"ack":"Succes