`
nbkangta
  • 浏览: 435432 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

hibernate领域对象转json

阅读更多

另外一种处理hibernate转json字符串的解决方案

 

java.lang.NoSuchMethodException: Property 'delegate' has no getter method

 

JsonBeanProcessor:

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processor.JsonBeanProcessor;
 
public class HibernateJsonBeanProcessor implements JsonBeanProcessor {
 
    public JSONObject processBean(Object obj, JsonConfig jsonConfig) {
        return new JSONObject();
    }
 
}

 JsonBeanProcessorMatcher:

import net.sf.json.processor.JsonBeanProcessorMatcher;
import java.util.Set;
import org.apache.log4j.Logger;
 
public class HibernateJsonBeanProcessorMatcher extends JsonBeanProcessorMatcher {
    
    private static Logger log = Logger.getLogger(HibernateJsonBeanProcessorMatcher.class);
    
    @Override
    public Object getMatch(Class target, Set set) {
        if (target.getName().contains("$$EnhancerByCGLIB$$")) {
            log.warn("Found Lazy-References in Hibernate object "
                    + target.getName());
            return org.hibernate.proxy.HibernateProxy.class;
        }
        return DEFAULT.getMatch(target, set);
    }
 
}

 为JsonConfig注册BeanProcessor和JsonBeanProcessorMatche:

sonConfig conf = new JsonConfig();
conf.registerJsonBeanProcessor(org.hibernate.proxy.HibernateProxy.class, 
    new HibernateJsonBeanProcessor());
conf.setJsonBeanProcessorMatcher(new HibernateJsonBeanProcessorMatcher());
 
分享到:
评论
2 楼 nbkangta 2009-08-14  
mayanyun1986 写道
异常不报啦,但是输出却是空。
public static String getJsonFromBean(Person bean) {
JsonConfig conf = new JsonConfig();
conf.registerJsonBeanProcessor(org.hibernate.proxy.HibernateProxy.class,
new HibernateJsonBeanProcessor());
conf.setJsonBeanProcessorMatcher(new HibernateJsonBeanProcessorMatcher());
JSONObject jr = JSONObject.fromObject(bean,conf);
System.out.println("jr:"+jr.toString());
return jr.toString();
}

上面的做法都是跳过hibernate cglib增强对象的办法,特别是为了跳过one to many这些属性。
如果目标是把整个PO持久化,还是同个setter/getter把hibernate PO变成VO,在进行这一步的好,我通常是用BeanUtils
1 楼 mayanyun1986 2009-08-10  
异常不报啦,但是输出却是空。
public static String getJsonFromBean(Person bean) {
JsonConfig conf = new JsonConfig();
conf.registerJsonBeanProcessor(org.hibernate.proxy.HibernateProxy.class,
new HibernateJsonBeanProcessor());
conf.setJsonBeanProcessorMatcher(new HibernateJsonBeanProcessorMatcher());
JSONObject jr = JSONObject.fromObject(bean,conf);
System.out.println("jr:"+jr.toString());
return jr.toString();
}

相关推荐

    Sping+Hibernate+Extjs+Json

    ### Sping+Hibernate+Extjs+Json 开发实例解析 #### 一、技术栈概述 在本案例中,我们探讨的是一个使用 Spring、Hibernate、Extjs 和 JSON 的集成开发实例。这一组合通常被用于构建复杂的企业级应用,尤其是那些...

    springmvc_hibernate+json lib包

    标题中的"springmvc_hibernate+json lib包"表明这是一个与Spring MVC、Hibernate和JSON相关的库文件集合。在Java开发领域,这三大技术是构建Web应用程序的重要组件。让我们深入了解一下它们各自的功能以及它们如何...

    Jackson 框架,轻易转换JSON

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。Jackson框架的主要目标是简化JSON与Java对象之间的交互,使得开发者能够轻松地在Java应用中处理...

    json数据转换jar包

    3. **与其他技术的集成**:json-lib也支持与Hibernate、Struts、Spring等框架的集成,简化JSON操作。 在处理JSON数据时,选择Jackson还是json-lib取决于具体需求。如果你需要更高效、更现代的解决方案,Jackson可能...

    json转换工具jackson

    Jackson是Java领域中处理JSON的主流库之一,由 FasterXML 组织开发,提供了高效且灵活的JSON序列化和反序列化功能。本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **...

    Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2+json+junit4所有的jar包大集合

    Struts2.1.6、Spring2.5.6、Hibernate3.3.2、JSON 和 JUnit4 是五个在Java开发中至关重要的组件,它们共同构建了一个强大的企业级应用框架。下面将分别介绍这些技术及其集成应用的重要性。 **Struts2.1.6** 是一个...

    JSON开发完整资源包

    此外,JSON还有一系列的规范和标准,如JSON Schema用于验证JSON数据的结构,JSON Pointer用于引用JSON对象中的特定部分,以及JSON-LD用于链接数据,增加了JSON在语义网和大数据领域的应用可能性。 总之,这个"JSON...

    ssh整合时json用的jar包

    在Java开发领域,SSH(Spring、Struts2、Hibernate)是一个经典的开源框架组合,用于构建企业级Web应用程序。在整合SSH框架时,JSON(JavaScript Object Notation)的使用变得尤为重要,因为JSON是一种轻量级的数据...

    jackjson类型转换各种方法

    杰克逊(Jackson)是Java领域中广泛使用的JSON处理库,它提供了强大的功能,使得JSON与其他数据类型(如Java对象)之间的转换变得简单且高效。本文将深入探讨Jackson框架在JSON转换中的各种方法,帮助你更好地理解和...

    json解析利器-jackson

    Jackson是Java领域中的一款高效、功能丰富的JSON处理库,它提供了多种方式来解析和生成JSON,使得开发者能轻松地在Java对象和JSON之间进行转换。 Jackson库由FasterXML公司开发,其核心组件包括: 1. **Jackson-...

    json的java的jar包

    `json-lib-2.3-jdk15.jar`是`json-lib`的主要实现库,适用于JDK 1.5版本,它提供了将Java对象转换为JSON格式以及将JSON字符串反序列化为Java对象的功能。支持各种复杂数据结构,包括数组、集合、Map等。 `json-lib-...

    bootstrap、ajax、json、spring mvc、spring、hibernate 项目实战源码

    在IT领域,尤其是在Web开发中,`bootstrap`、`ajax`、`json`、`spring mvc`、`spring`和`hibernate`是六个非常重要的技术组件,它们共同构建了一个高效、交互性强的Web应用程序。下面我们将逐一探讨这些技术的核心...

    hibernate 杂谈

    在Java开发领域,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,将Java对象与数据库表之间的映射关系自动化处理。本篇文章将对Hibernate的一些关键特性进行探讨,包括存取JSON数据的新...

    SpringMVC3+Hiberate4+Junit+json

    SpringMVC、Hibernate、JUnit 和 JSON 这四个技术在IT行业中是极其重要的组件,它们各自在不同的领域发挥着关键作用,而将它们整合在一起则能构建出强大的企业级Web应用程序。 SpringMVC 是Spring框架的一个模块,...

    hibernate-release-5.3.2.Final

    Hibernate ORM,作为Java领域最著名的对象关系映射框架之一,自诞生以来就深受开发者喜爱。2018年7月5日,Hibernate发布了其最新版本——5.3.2.Final,带来了诸多改进和新特性,为开发者提供了更为高效、稳定的持久...

    hibernate5.2

    Hibernate,作为Java领域中的一款主流对象关系映射(ORM)框架,极大地简化了数据库操作。在本文中,我们将深入探讨Hibernate 5.2版本,它是该框架的一个重要里程碑,带来了诸多改进和新特性。 一、Hibernate 5.2...

    hibernate-validator示例demo

    在IT行业中,尤其是在Java开发领域,`Hibernate Validator`是一个至关重要的工具,它是JSR-303/JSR-349(Java Bean Validation)规范的实现,用于验证对象的属性值。`SpringMVC`是Spring框架的一部分,用于处理Web...

    简单的SSH+JQuery+JSON例子

    在IT行业中,SSH、JQuery和JSON是三个非常重要的技术组件,它们在Web开发领域有着广泛的应用。SSH指的是Struts、Spring和Hibernate这三个Java Web开发框架的缩写,而JQuery是一个强大的JavaScript库,JSON则是一种轻...

    hibernate最新版本5.2.3所有jar包

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。在这个最新的5.2.3版本中,包含了一系列的jar包,这些jar包共同构成了Hibernate的...

    hibernate5.3 jar包

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。在这个“hibernate5.3 jar包”中,我们找到了Hibernate 5.3.0 Final的稳定版本,...

Global site tag (gtag.js) - Google Analytics