`
longgangbai
  • 浏览: 7340688 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

json将对象转换json格式字符串以及将字符串转换对象工具类

阅读更多

package cn.com.unutrip.java.json;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;

import org.apache.commons.lang.time.DateUtils;

/**
 * json的工具类
 *
 * @author longgangbai
 *
 */
public class JsonUtil {

 /**
  * 从一个JSON 对象字符格式中得到一个java对象
  *
  * @param jsonString
  * @param pojoCalss
  * @return
  */
 public static Object getObject4JsonString(String jsonString, Class pojoCalss) {
  JSONObject jsonObject = JSONObject.fromObject(jsonString);
  Object pojo = JSONObject.toBean(jsonObject, pojoCalss);
  return pojo;
 }

 /**
  * 从json HASH表达式中获取一个map,改map支持嵌套功能
  *
  * @param jsonString
  * @return
  */
 @SuppressWarnings("unchecked")
 public static Map getMap4Json(String jsonString) {
  JSONObject jsonObject = JSONObject.fromObject(jsonString);
  Iterator keyIter = jsonObject.keys();
  String key;
  Object value;
  Map<String, Object> valueMap = new HashMap<String, Object>();
  while (keyIter.hasNext()) {
   key = (String) keyIter.next();
   value = jsonObject.get(key);
   valueMap.put(key, value);
  }
  return valueMap;
 }

 /**
  * 从json数组中得到相应java数组
  *
  * @param jsonString
  * @return
  */
 public static Object[] getObjectArray4Json(String jsonString) {
  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  return jsonArray.toArray();
 }

 /**
  * 从json对象集合表达式中得到一个java对象列表
  *
  * @param jsonString
  * @param pojoClass
  * @return
  */
 public static List getList4Json(String jsonString, Class pojoClass) {

  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  JSONObject jsonObject;
  Object pojoValue;
  List list = new ArrayList();
  for (int i = 0; i < jsonArray.size(); i++) {
   jsonObject = jsonArray.getJSONObject(i);
   pojoValue = JSONObject.toBean(jsonObject, pojoClass);
   list.add(pojoValue);
  }
  return list;

 }

 /**
  * 从json数组中解析出java字符串数组
  *
  * @param jsonString
  * @return
  */
 public static String[] getStringArray4Json(String jsonString) {

  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  String[] stringArray = new String[jsonArray.size()];
  for (int i = 0; i < jsonArray.size(); i++) {
   stringArray[i] = jsonArray.getString(i);

  }
  return stringArray;
 }

 /**
  * 从json数组中解析出javaLong型对象数组
  *
  * @param jsonString
  * @return
  */
 public static Long[] getLongArray4Json(String jsonString) {

  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  Long[] longArray = new Long[jsonArray.size()];
  for (int i = 0; i < jsonArray.size(); i++) {
   longArray[i] = jsonArray.getLong(i);
  }
  return longArray;
 }

 /**
  * 从json数组中解析出java Integer型对象数组
  *
  * @param jsonString
  * @return
  */
 public static Integer[] getIntegerArray4Json(String jsonString) {
  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  Integer[] integerArray = new Integer[jsonArray.size()];
  for (int i = 0; i < jsonArray.size(); i++) {
   integerArray[i] = jsonArray.getInt(i);
  }
  return integerArray;
 }

 /**
  * 从json数组中解析出java Date 型对象数组,使用本方法必须保证
  *
  * @param jsonString
  * @return
  */
 public static Date[] getDateArray4Json(String jsonString, String DataFormat) {

  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  Date[] dateArray = new Date[jsonArray.size()];
  String dateString;
  Date date;

  for (int i = 0; i < jsonArray.size(); i++) {
   dateString = jsonArray.getString(i);
   try {
    date = DateUtils.parseDate(dateString, new String[] { "yyyy-MM-ddd" });
    dateArray[i] = date;
   } catch (ParseException e) {
    new RuntimeException(e);
   }
  }
  return dateArray;
 }

 /** */
 /**
  * 从json数组中解析出java Integer型对象数组
  *
  * @param jsonString
  * @return
  */
 public static Double[] getDoubleArray4Json(String jsonString) {

  JSONArray jsonArray = JSONArray.fromObject(jsonString);
  Double[] doubleArray = new Double[jsonArray.size()];
  for (int i = 0; i < jsonArray.size(); i++) {
   doubleArray[i] = jsonArray.getDouble(i);
  }
  return doubleArray;
 }

 /** */
 /**
  * 将java对象转换成json字符串
  *
  * @param javaObj
  * @return
  */
 public static String getJsonString4JavaPOJO(Object javaObj) {

  JSONObject json;
  json = JSONObject.fromObject(javaObj);
  return json.toString();

 }

 /**
  * 将java对象转换成json字符串,并设定日期格式
  *
  * @param javaObj
  * @param dataFormat
  * @return
  */
 public static String getJsonString4JavaPOJO(Object javaObj, String dataFormat) {

  JSONObject json;
  JsonConfig jsonConfig = configJson(dataFormat);
  json = JSONObject.fromObject(javaObj, jsonConfig);
  return json.toString();

 }

 /**
  * JSON 时间解析器具
  *
  * @param datePattern
  * @return
  */
 public static JsonConfig configJson(String datePattern) {
  JsonConfig jsonConfig = new JsonConfig();
  jsonConfig.setExcludes(new String[] { "" });
  jsonConfig.setIgnoreDefaultExcludes(false);
  jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
  jsonConfig.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor(datePattern));

  return jsonConfig;
 }

 /**
  *
  * @param excludes
  * @param datePattern
  * @return
  */
 public static JsonConfig configJson(String[] excludes, String datePattern) {
  JsonConfig jsonConfig = new JsonConfig();
  jsonConfig.setExcludes(excludes);
  jsonConfig.setIgnoreDefaultExcludes(false);
  jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
  jsonConfig.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor(datePattern));
  return jsonConfig;
 }

}

分享到:
评论

相关推荐

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

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

    JAVA-JSON工具转换类

    可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    同样以`com.google.gson`为例,我们可以使用`fromJson()`方法将JSON字符串转换回Java对象。在上面的例子中,如果我们已经有一个JSON字符串,可以这样做: ```java String jsonString = "{\"name\":\"Alice\",\"age\...

    将string类型xml字符串转为json字符串

    总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串并构建相应的JSON对象来完成的。这个过程通常需要借助特定的库,如Java中的`org.json`。理解XML和JSON的结构差异,以及如何利用这些库进行...

    json转换工具jackson

    - **序列化**: Jackson 提供了 `ObjectMapper` 类,通过 `writeValueAsString()` 或 `writeValueAsBytes()` 方法可以将Java对象转换成JSON字符串或字节数组。 - **反序列化**: 使用 `readValue()` 方法,可以将...

    java 对象与json字符串互相转换工具类

    // 将JSON字符串转换为对象 YourClass yourObject = JSON.parseObject(jsonString, YourClass.class); ``` 4. 遇到的常见问题: - **序列化/反序列化的异常**:如果对象的属性包含不可序列化的类型(如`...

    androidmap转json字符串、list转json字符串工具类.zip

    总结一下,这个压缩包提供的是两个关键的Java工具类,它们能够帮助Android开发者快速地将Map和List对象转换为JSON字符串。通过理解和使用这些工具,可以提高代码的可读性和效率,简化数据处理流程。在实际项目中,...

    json工具类,java日期转换,字符串转换等各种工具类

    例如,可以使用`parse()`方法将字符串转换为日期,`format()`方法则反之。 3. **字符串转换**: 字符串操作包括字符串与基本类型之间的转换,如`Integer.parseInt()`和`Integer.toString()`用于整型,`Double....

    json字符串转换插件

    通过这种方式,你可以使用`JsonUtils.jsonToJavaObject()`方法将JSON字符串转换为任意指定类型的Java对象,而`JsonUtils.javaObjectToJson()`则将Java对象转换为JSON字符串。 总之,JSON字符串转换插件是Java开发中...

    js json字符串转对象

    本文主要关注如何将JSON字符串转换为JavaScript对象。 1. **JSON.stringify() 和 JSON.parse()** `JSON.stringify()` 是JavaScript提供的一个内置函数,用于将JavaScript对象转换为JSON字符串。这在需要在网络间...

    利用Google Gson实现JSON字符串和对象之间相互转换

    以下是一个简单的例子,展示如何将JSON字符串转换为Java对象: ```java class User { private String name; private int age; // getters and setters... } String jsonString = "{\"name\":\"John\", \"age\...

    JSON对象转换工具类

    ### JSON对象转换工具类 #### 简介 在Java开发过程中,经常需要处理JSON格式的数据,例如从前端接收到的请求数据、第三方接口返回的数据等。为了方便地进行JSON与Java对象之间的转换,通常会封装一个JSON工具类。...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    现在,我们可以使用Jackson库的`ObjectMapper`类将JSON字符串转换为Java对象: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonParser { public static void main(String[] args...

    对象转换json字符串类

    在给定的【标题】"对象转换json字符串类"和【描述】中,我们可以推测这是一个关于如何在C#中将对象转化为JSON字符串的类或方法。 在C#中,我们有多种库可以实现这个功能,如Newtonsoft.Json(也称为Json.NET)和...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    是Java开发中处理JSON数据的一个工具,它提供了一种方便的方式来转换Java对象和JSON字符串,使得数据交换变得更加简单。通过理解和熟练使用`JSONObject`,开发者可以更好地应对前后端交互的需求。

    安卓 JSON实现对象和数组的相互转换

    // 将JSON字符串转换为Java对象 public static &lt;T&gt; T jsonToObject(String jsonString, Class&lt;T&gt; clazz) { if (jsonString == null || jsonString.isEmpty()) { return null; } try { return gson.fromJson...

    python对象转json字符串小工具

    本小工具正是用于将Python对象转化为JSON字符串。 在Python中,`json`模块提供了两个主要函数来实现Python对象到JSON字符串的转换:`dumps()`和`dump()`。`dumps()`函数将Python对象转化为JSON字符串,而`dump()`则...

    json字符串转c#代码

    总结起来,将JSON字符串转换为C#实体类是.NET开发中常见的任务,借助于Json.NET库和专门的转换工具,可以方便快捷地完成这一过程。理解JSON与C#对象之间的映射关系,以及如何利用Json.NET进行序列化和反序列化,是每...

    JSON与java对象转换的工具包

    例如,如果你有一个User类,你可以轻松地将JSON字符串转换为User实例,或者将User对象转换成JSON字符串。 2. **Map转换**: Map是Java中存储键值对的数据结构,常用于数据存储和传递。工具包支持将JSON字符串解析...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

Global site tag (gtag.js) - Google Analytics