`

JSONOBJ 转换对象

 
阅读更多

import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JSONObject;


public class JsonToObject {
public static void main(String[] args) throws Exception {
 
 JSONObject obj = new JSONObject();
 obj.put("id", 1);
 obj.put("name","zx");
 obj.put("date",new Date());
 obj.put("size",10);
 obj.put("sum",20.5);
 JsonToObject  j = new JsonToObject();

//net.jsf.json 包JSONobjct 自带的
 Object bean = JSONObject.toBean(obj, Student.class);
 

//自己封装的jsonObj转换 pojo
// j.fromJsonToJava(obj, Student.class,"yyyy-MM-dd HH:mm:ss");
 
}

private Object fromJsonToJava(JSONObject json,Class pojo,String dateFormat) 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, Long.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, Double.parseDouble(json.getString(name)));
                  } else if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){
                      field.set(obj, Integer.parseInt(json.getString(name)));
                  } else if(field.getType().equals(java.util.Date.class)){
                   SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
                      field.set(obj, sdf.parse(json.getString(name)));
                  }else{
                     continue;
                  }
              }
          }
          return obj;
      }
}

 

分享到:
评论

相关推荐

    Java中Json字符串直接转换为对象的方法(包括多层List集合)

    本文将详细介绍如何将JSON字符串直接转换为Java对象,特别是涉及到多层List集合的情况。在本例中,我们将使用`net.sf.json.JSONObject`类来实现这一功能。 首先,确保你的项目中已经引入了必要的库。在使用`...

    使用JQuery实现从JSON对象转换为form提交数据

    本篇文章将深入探讨如何利用jQuery从JSON对象转换为form提交数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和...

    json转换.docx

    JSON 转换是指将 JSON 数据与其他数据格式之间的相互转换,包括将 JSON 字符串转换为 JavaScript 对象、将 JavaScript 对象转换为 JSON 字符串等。 将 JavaScript 对象转换为 JSON 字符串 在将 JavaScript 对象...

    Delphi LiveBinding对象及对象序列化为JSON的例子

    在这个例子中,`ToJSON`方法将Delphi对象转换为JSON对象,`ToString`则将JSON对象转换为字符串,最后保存到文件中。注意,对象需要实现`IMarshaller`接口才能直接调用`ToJSON`方法,否则你需要手动遍历对象的属性并...

    经典ASP读取JSON字符串/生成JSON对象,数组对象等。

    使用`aspjson`库,可以创建并填充ASP对象,然后将其转换为JSON字符串输出。例如: ```vbscript Dim jsonObj, arr Set jsonObj = New ASPJSON Set arr = jsonObj.CreateObject("Array") arr.Add "Item1" arr....

    把普通对象转换成json格式的对象的简单实例

    例如,有一个普通格式的对象var obj={name:"中国",age:5000},转换为JSON格式的对象则是var jsonObj={"name":"中国","age":5000}。在转换过程中,属性名必须用双引号包围起来。 在处理数据格式转换时,还需要注意...

    javascript中JSON对象与JSON字符串相互转换实例

    本篇文章将详细介绍如何在JavaScript中进行JSON对象与JSON字符串之间的相互转换。 ### JSON对象 JSON对象是JavaScript中的一个对象,其属性名必须用双引号括起来,属性值可以是字符串、数字、布尔值、null、数组或...

    delphi数据集和json互转

    它支持解析JSON字符串到JSON对象,以及将JSON对象转换回字符串。在Delphi中,你可以通过导入lkJSON库,然后调用其提供的方法来操作JSON数据。 要将数据集转换为JSON,通常需要以下步骤: 1. 初始化lkJSON库:在你...

    在HTML5中使用json对象的示例代码.docx

    接着,我们使用`JSON.stringify()`方法将JSON对象转换为字符串。这在需要存储或发送JSON数据时非常有用。例如,将`students`对象转换为字符串并打印: ```javascript students = JSON.stringify(students); console...

    JAVA构造json对象的方法

    - Gson是一个轻量级的Java库,可以轻松地将Java对象转换为JSON格式,并将JSON字符串反序列化为Java对象。 2. **使用Jackson库**: - Jackson是一个非常强大的Java库,用于处理JSON数据。它支持流式API,可以高效...

    delphi 使用superobject库解析和生成json实例

    3. **转换为字符串**:最后,使用`ToString`方法将JSON对象转换为字符串形式。 ```delphi JSONString := JSONObj.ToString; ``` **注意事项** - SuperObject支持嵌套的JSON结构,这意味着你可以创建包含对象和数...

    js操作json

    JavaScript 操作 JSON ...JavaScript 提供了多种方法来操作 JSON 数据,包括将 JSON 对象转换为字符串、将字符串转换为 JSON 对象、遍历 JSON 数据等。了解 JSON 的基本概念和操作方法对于 Web 开发是非常重要的。

    superobject.pas

    // 将JSONObj转换为字符串 ShowMessage(JSONObj.AStr); end; ``` SuperObject还支持嵌套的JSON对象和数组,以及各种数据类型,包括整数、浮点数、布尔值、日期/时间以及null。此外,它还提供了递归解析和创建复杂...

    Json对象与Json字符串互转(4种转换方式)

    - `JSON.stringify(jsonobj)`:相反地,此方法可以将JavaScript对象转换为JSON字符串。这对于存储或发送数据非常有用,因为数据将以文本形式传输。 在IE8的兼容模式及更早版本中,没有内置的JSON支持。因此,为了...

    Delphi中Json格式读写之superobjectv1.2.4

    通过使用SuperObject,开发者可以方便地将JSON字符串转换为Delphi的对象结构,同时也可以将对象转换回JSON字符串。 首先,让我们了解如何在Delphi项目中集成SuperObject。在描述中提到了两个关键文件:`superobject...

    delphi7-json-superobject

    这样,你可以通过索引或属性访问 JSON 对象的成员,如 `JSONObj['name']` 或 `JSONObj['age']`。 2. **JSON 生成**: 要生成 JSON 字符串,可以创建一个 `OSuperObject` 实例,并添加属性和值。以下示例展示了...

    JSON数据解析和构造

    创建了一个User对象并设置了属性,然后使用`JSONObject.fromObject(u)`将其转换为JSON对象。这样,User对象的属性被映射到JSON键值对中。 4. Java Map转换为JSON: 在实例4中,创建了一个HashMap,并添加了一些键值...

    Delphi 读写操作JSON字符串的工具类

    将 JSON 对象转换回字符串: ```delphi JSONStr := JSONObj.AsJSon; ``` 5. **遍历 JSON**: 遍历 JSON 对象的数组或对象属性: ```delphi for I := 0 to JSONObj.AsArray.Length - 1 do begin Item := ...

    JS遍历Json字符串中键值对先转成JSON对象再遍历

    下面将详细介绍从JSON字符串到对象的转换,以及如何遍历这个对象的键值对。 ### JSON字符串转为JSON对象 在转换之前,我们首先需要有一个JSON格式的字符串。例如: ```javascript var jsonString = '{"firstName...

Global site tag (gtag.js) - Google Analytics