ext两张表组成的tree结构防止id重复的方法(三)

本文介绍了如何通过Java实现特定实体树结构的JSON序列化,包括Model和ModelTree两个类的定义及其treeType属性的使用,并展示了如何配置JsonConfig来排除不需要转换的属性并设置日期格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Model.java代码如下

	@Entity
	@Table(name="tb_model")
	public class Model extends IdEntity{
		static final long serialVersionUID = 0L;
		
		 ………
		//返回model的treeType
		@Transient
		public String getTreeType() {
			return "ml";
		}
	}

 

ModelTree.java代码如下

@Entity
@Table(name = "tb_modeltree")
public class ModelTree extends TreeEntity<ModelTree> implements HibernateTree,
		PriorityInterface {
	static final long serialVersionUID = 0L;
	。。。。	

	//返回modeltree的treeType
	@Transient
	public String getTreeType() {
		return "mt";
	}
}

 

JsonUtils.write()方法修改如下

	/**
	 * 配置json-lib需要的excludes和datePattern.
	 * 
	 * @param excludes
	 *            不需要转换的属性数组
	 * @param datePattern
	 *            日期转换模式
	 * @return JsonConfig 根据excludes和dataPattern生成的jsonConfig,用于write
	 */
	public static JsonConfig configJson(String[] excludes, String datePattern) {
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(excludes);
		jsonConfig.setIgnoreDefaultExcludes(false);
		jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
			   public boolean apply(Object source, String name, Object value) {
				 //配置需要转换的属性
				     if (name.equals("text") || name.equals("id")
				       || name.equals("checked") || name.equals("leaf")
				       || name.equals("treeType")) {
				      return false;
				     } else {
				      return true;
				     }
				    }
				   });
		jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
		jsonConfig.registerJsonValueProcessor(Date.class,
				new DateJsonValueProcessor(datePattern));

		return jsonConfig;
	}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值