json 转换 java odl_json转化的时候如何忽略某些属性字段值

一、有时候在将对象或list对象转化为json的时候,我们可能不需要所有的属性值,这就需要我们去过滤掉这些属性了

我下面说两种比较流行的json包如何来忽略某些属性值

二、 使用jaskson包

1.   maven配置:

com.fasterxml.jackson.core

jackson-databind

2.9.5

2.  在需要忽略字段属性上使用注解来配置:

//@JsonIgnoreProperties({"dict_id","dict_item_code"}) // 可以使用此注解放在类上忽略多个属性值

public class BaseDict {

@JsonIgnore //可以直接放在field上面表示要忽略的filed

private String dict_id;

private String dict_type_code;

private String dict_type_name;

private String dict_item_name;

private String dict_item_code;

private Integer dict_sort;

private String dict_enable;

private String dict_memo;

public String getDict_id() {

return dict_id;

}

public void setDict_id(String dict_id) {

this.dict_id = dict_id;

}

public String getDict_type_code() {

return dict_type_code;

}

public void setDict_type_code(String dict_type_code) {

this.dict_type_code = dict_type_code;

}

public String getDict_type_name() {

return dict_type_name;

}

public void setDict_type_name(String dict_type_name) {

this.dict_type_name = dict_type_name;

}

public String getDict_item_name() {

return dict_item_name;

}

public void setDict_item_name(String dict_item_name) {

this.dict_item_name = dict_item_name;

}

public String getDict_item_code() {

return dict_item_code;

}

public void setDict_item_code(String dict_item_code) {

this.dict_item_code = dict_item_code;

}

public Integer getDict_sort() {

return dict_sort;

}

public void setDict_sort(Integer dict_sort) {

this.dict_sort = dict_sort;

}

public String getDict_enable() {

return dict_enable;

}

public void setDict_enable(String dict_enable) {

this.dict_enable = dict_enable;

}

public String getDict_memo() {

return dict_memo;

}

public void setDict_memo(String dict_memo) {

this.dict_memo = dict_memo;

}

}

3. 使用封装的jsonUtils来实现操作

package com.sshcrm.utils;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;

import com.fasterxml.jackson.databind.JavaType;

import com.fasterxml.jackson.databind.ObjectMapper;

/**

* CRM自定义响应结构

*/

public class JsonUtils {

// 定义jackson对象

private static final ObjectMapper MAPPER = new ObjectMapper();

/**

* 将对象转换成json字符串。

*

Title: pojoToJson

*

Description:

* @param data

* @return

*/

public static String objectToJson(Object data) {

try {

String string = MAPPER.writeValueAsString(data);

return string;

} catch (JsonProcessingException e) {

e.printStackTrace();

}

return null;

}

/**

* 将json结果集转化为对象

*

* @param jsonData json数据

* @param clazz 对象中的object类型

* @return

*/

public static T jsonToPojo(String jsonData, Class beanType) {

try {

T t = MAPPER.readValue(jsonData, beanType);

return t;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 将json数据转换成pojo对象list

*

Title: jsonToList

*

Description:

* @param jsonData

* @param beanType

* @return

*/

public static List jsonToList(String jsonData, Class beanType) {

JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);

try {

List list = MAPPER.readValue(jsonData, javaType);

return list;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

三、使用json-lib包

1.  maven配置

net.sf.json-lib

json-lib

2.4

jdk15

2.  使用JsonConfig指定要忽略的属性

public String findByTypeCode() throws IOException {

//调用业务层查询

List result = baseDictService.findByTypeCode(baseDict.getDict_type_code());

//将list转化为json

/**

* JSONConfig: 转JSON的配置对象

* JSONAarray:将数组和list集合转成JSON

* JSONObject: 将对象和Map集合转成JSON

*/

JsonConfig jsonConfig = new JsonConfig();

jsonConfig.setExcludes(new String[] {"dict_sort","dict_enable","dict_memo"});

JSONArray jsonArray = JSONArray.fromObject(result, jsonConfig);

//将json打印到页面

ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");

ServletActionContext.getResponse().getWriter().print(jsonArray.toString());

return NONE;

}

QGis(三)查询矢量图层的要素属性字段值(转载)

QGis(三)查询矢量图层的要素属性字段值 https://github.com/gwaldron/osgearth/issues/489 当加载一个矢量图层后,如果要查看要素的属性字段值,则需要实现 ...

Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)

在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: ...

Dynamics CRM2016 Web API之更新记录的单个属性字段值

在web api中提供了对单个属性的更新接口,这和查询中查询单个属性类似,对这个接口我个人也是比较喜欢的. var id = "{D1E50347-86EB-E511-9414-ADA183 ...

C# -- 把json字符串转为对象并读取各属性的值

前面2种方法是不需要声明一个Json字符串的类型即可把Json字符串转换为Dictionary对象 而第3种方法则是声明一个Json字符串的强类型对象,然后反序列化为该对象的数据. List

suoermap的object.net循环遍历属性表,从数据库取数据进行更新属性字段值

/// /// 图层名 ///

转载自——Json.Net如何在序列化之前修改属性值

今天写一个Json.net比较偏门的用法,也许你很久都用不到,也许你明天就能派上用场. 我们都知道 Json.net 序列话的用法 Test test = new Test() { A = &quot ...

C#中如何实现json转化时只处理部分属性

把对象转化为json字符串,很常用,但如果因为现在大部分项目都是用了ORM映射,导致一个对象的属性特别多,如果前台只需要部分属性如何实现? 当然最简单是所有属性都json化,前台只处理需要的属性,多余 ...

Json Serialize 忽略特定属性

Json Serialize 忽略特定属性 Json Serialize SerializeFilter 忽略特定属性 key words:Json Serialize jackson fastjso ...

随机推荐

用户控件的设计要点 System.Windows.Forms.UserControl

用户控件的设计要点 最近的项目中有一个瀑布图(彩图)的功能,就是把空间和时间上的点量值以图的形式呈现出来,如下图: X坐标为空间,水平方向的一个像素代表一个空间单位(例如50米) Y坐标为时间,垂直方 ...

将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

今天由于程序需要,需要将真彩色转换成增强色进行颜色匹配,上网搜了一下没搜到相应函数,于是研究了一下RGB16位的增强色,写了这个函数: public static int RGB16(int argb ...

toolbar

toolbar= (Toolbar) findViewById(R.id.toolbar_mainactivity); // 设置主标题及其颜色 toolbar.setTitle("Andr ...

JS判断对象是否存在的方法

Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...

python处理xml的常用包(lib.xml、ElementTree、lxml)

python处理xml的三种常见机制 dom(随机访问机制) sax(Simple APIs for XML,事件驱动机制) etree python处理xml的三种包 标准库中的xml Fredri ...

Linux下Matlab崩溃的解决方法

猜想主要是因为图形显示用了OpenGL加速造成不稳定. 我的运行环境是: Ubuntu 10.04 LTS 64bit Matlab R2010b 解决方法是启动时用: $MATLAB_DIR/bin ...

JVM学习--(七)性能监控工具

前言 工欲善其事必先利其器,性能优化和故障排查在我们大都数人眼里是件比较棘手的事情,一是需要具备一定的原理知识作为基础,二是需要掌握排查问题和解决问题的流程.方法.本文就将介绍利用性能监控工具,帮助开 ...

springboot读取自定义配置文件节点

今天和大家分享的是自定义配置信息的读取:近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需 ...

UDK命令

UDK命令行参数与控制台命令都是大小写不敏感的 命令行  udn中文  udn英文 全词大小写匹配,正则表达式,在c++代码中搜索减号开头的命令行参数(如:-BENCHMARK.-onethread等 ...

git强制覆盖更新

1.选择项目,右键选择Team,选择Team里面的Reset. 2.点击Reset后弹出Reset窗口,选择Hard选项,这样就会把远端的项目完全拉下来覆盖本地,本地没有的文件也会被创建,点击确定.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值