`

JSON 转化为java对象

    博客分类:
  • JSON
阅读更多

JSON 转化为java对象

 

 

JSON作为一种轻量级数据交换工具,使用是非常方便的。但在同J2EE后台交互的时候,需要将JSON直接转化为我们工程中的java持久对象经行业务操作或直接持久化到数据库。现在有很多这种数据转化工具,我们项目中使用了JSON-tool第三包,使用的步骤为:

1. 接受前台json数据

String data = request.getParameter("data");

2. 通过接收到的json数据构建一个JSONObject或是一个JSONArray
JSONObject json = new JSONObject(data);

3. 通过JSONMapper的tojava()方法将JSONObject转化为我们需要的对象。

    但在处理的过程中,如果遇到主外键关联的时候很不好处理,容易出错,所以就想到了根据java的反射
机制动态去转化JSON对象为pojo对象。

private Object fromJsonToJava(JSONObject json,Class pojo)
        throws Exception{
        // 首先得到pojo所定义的字段
        Field [] fields = pojo.getDeclaredFields();
        // 根据传入的Class动态生成pojo对象
        Object obj = pojo.newInstance();
        for(Field field: fields){
            // 设置字段可访问(必须,否则报错)
            field.setAccessible(true);
            // 得到字段的属性名
            String name = field.getName();
            // 这一段的作用是如果字段在JSONObject中不存在会抛出异常,如果出异常,则跳过。
            try{
                    json.get(name);
            }catch(Exception ex){
                continue;
            }
            if(json.get(name) != null && !"".equals(json.getString(name))){
                // 根据字段的类型将值转化为相应的类型,并设置到生成的对象中。
                if(field.getType().equals(Long.class) || field.getType().equals(long.class)){
                    field.set(obj, StringUtil.parseLong(json.getString(name)));
                }else if(field.getType().equals(String.class)){
                    field.set(obj, json.getString(name));
                } else if(field.getType().equals(Double.class) || field.getType().equals(double.class)){
                    field.set(obj, StringUtil.parseDouble(json.getString(name)));
                } else if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){
                    field.set(obj, StringUtil.parseInt(json.getString(name)));
                } else if(field.getType().equals(java.util.Date.class)){
                    field.set(obj, DateTimeUtil.stringToDate(json.getString(name), "yyyy-MM-dd"));
                }else{
                    continue;
                }
            }
        }
        return obj;
    }

大功告成,粗略测试,成功。单在有住外键的情况下,还是没有处理。

改天在优化一下这个程序。

 

 

个人签名

-------------------------------------

 

图盾 淘宝保护 保护图片 图片防盗 

 

分享到:
评论

相关推荐

    Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)

    这是本人写的一个基于JSON的完整项目,实现了Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...

    Json转化为Java对象的实例详解

    本文将深入探讨如何将JSON字符串转化为Java对象,包括基本类型的转化以及包含List对象的情况。 首先,我们需要引入JSON处理的库。这里推荐使用`json-lib`库,可以通过Maven来添加依赖。在你的`pom.xml`文件中加入...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    Java作为一种常用的后端开发语言,需要处理这些JSON数据,将其转化为Java对象以便于操作。本主题主要关注如何使用`net.sf.json.JSONObject`这个库将多层集合嵌套的JSON数据转换为Java对象。 `...

    json转对象(java 多级嵌套)

    除了将JSON转换为Java对象,我们还可以使用`ObjectMapper`将Java对象转换回JSON字符串,这对于前端展示或存储数据非常有用: ```java String json = mapper.writeValueAsString(outerObject); ``` 6. **异常...

    json转化所需要的jar包

    类的`toJSON()`方法将Java对象转化为JSON,而`json-lib`的`JSONArray`和`JSONObject`都有`toBean()`方法将JSON转化为Java对象。 5. **兼容性与版本选择**: `json-lib-2.3-jdk15`版本表明它兼容JDK1.5,如果你的项目...

    JSON与JAVA对象之间的转换

    Gson是Google提供的一个开源库,它允许将Java对象转换为对应的JSON字符串,反之亦然。使用Gson进行转换非常简单: ```java // 创建一个Java对象 Person person = new Person("John", "Doe", 30); // 使用Gson将...

    Java读取json文件,并转化为map取值

    在这个方法中,我们创建了一个`ObjectMapper`实例,它是Jackson库的核心类,用于进行JSON与Java对象之间的映射。`readValue`方法接受两个参数:一个是JSON文件的路径,另一个是目标类型,这里是`Map.class`。 现在...

    json 转化工具类

    在Java编程中,我们经常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到JSON转化工具类。这个"json 转化工具类"就是为了解决这样的问题。 在Java中,有很多流行的库可以处理JSON...

    json与java对象互转

    ##### 实例化Gson并转换Java对象为JSON 在实际操作中,我们可以通过以下方式创建Gson实例,并利用它来将Java对象转换为JSON字符串: ```java Gson gson = new GsonBuilder() .registerTypeAdapter(java.sql.Date....

    java实现http请求以及解析json与java对象转换 项目源代码实例

    这些库提供了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的功能。项目源代码可能会包含如何创建JSON对象、解析JSON字符串、映射到Java对象以及处理JSON数组的例子。 具体到这个"java实现http...

    JAVA-JSON工具转换类

    它提供了许多功能,例如将Java对象转化为JSON字符串,或者将JSON文本解析为Java对象。这对于数据的序列化和反序列化非常有用,使得在服务器端和客户端之间传递复杂的数据结构变得更加便捷。 `ezmorph`库则主要用于...

    json 字符串转java对象,java对象转json字符串

    自己有空时用java反射写的json转化工具,有不完善之处,多包涵

    ResultSet转化为json,json转化为List

    接下来,我们看看如何将JSON转化为List。假设我们已经有了一个JSON字符串,想要将其转换为List<User>: 1. 准备JSON字符串: ```java String jsonString = "[{\"name\":\"Alice\", \"age\":30}, {\"name\":\"Bob\...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    `fromObject`方法将Java对象转换为`JSONObject`,然后调用`toString()`将其转化为JSON字符串。 ### 进阶使用 - **处理嵌套结构**:`JSONObject`也支持嵌套结构,即JSON对象内包含其他JSON对象或数组。可以通过递归...

    将Json对象转化为Java实体类

    将Json对象转化为Java实体类 请输入要创建的类名:(格式为:*.java) Student.java 请输入json对象: {id : 10, name : '小明', age : 18, score : 88.5, city : '北京', isgood : true} 创建java实体类成功!

    Java bean转换为Json Schema

    Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...

    JAVA对象转化为JSON

    4. **`commons-beanutils.jar`**:Apache Commons BeanUtils库简化了Java Bean操作,提供了一种自动调用getter和setter的方法,这在准备Java对象为JSON转换时可能很有用。 5. **`json-lib-2.3-jdk15.jar`**:这是...

    GSON包,JAVA对象和LIST转换成JSON字符串

    创建一个 Gson对象在调用其toJson方法将JAVA对象或集合转换成json字符串 Gson gson = new Gson(); String toJson = gson.toJson(Object o);

Global site tag (gtag.js) - Google Analytics