`
siashuayongsheng
  • 浏览: 121345 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

java json

阅读更多
一个java处理JSON格式数据的通用类

进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享

/**

* Copyright (c) linkwise 2007-2009 corporation.

* All rights reserved

*/

package com.linghui.common.util;



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 com.linghui.common.util.DateUtil;

import com.linghui.common.util.jsonutil.DateJsonValueProcessor;



/**

* @author robert.feng

*

*/

public class JsonUtil {



/**

* 从一个JSON 对象字符格式中得到一个java对象

* @param jsonString

* @param pojoCalss

* @return

*/

public static Object getObject4JsonString(String jsonString,Class pojoCalss){

Object pojo;

JSONObject jsonObject = JSONObject.fromObject( jsonString );

pojo = JSONObject.toBean(jsonObject,pojoCalss);

return pojo;

}



/**

* 从json HASH表达式中获取一个map,改map支持嵌套功能

* @param jsonString

* @return

*/

public static Map getMap4Json(String jsonString){

JSONObject jsonObject = JSONObject.fromObject( jsonString );

Iterator keyIter = jsonObject.keys();

String key;

Object value;

Map valueMap = new HashMap();

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);

date = DateUtil.stringToDate(dateString, DataFormat);

dateArray[i] = date;

}

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();

  }

 

/**

* @param args

*/

public static void main(String[] args) {

// TODO 自动生成方法存根

}



/**

* 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;

}

}



/**

* linkwise

*/

package com.linghui.common.util.jsonutil;



import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;



import net.sf.json.JsonConfig;

import net.sf.json.processors.JsonValueProcessor;



/**

* @author robert.feng

*

*/

public class DateJsonValueProcessor implements JsonValueProcessor {



public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";

private DateFormat dateFormat;



/**

* 构造方法.

*

* @param datePattern 日期格式

*/

public DateJsonValueProcessor(String datePattern) { 

if( null == datePattern )

dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);

else

dateFormat = new SimpleDateFormat(datePattern);

  }





/* (非 Javadoc)

* @see net.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object, net.sf.json.JsonConfig)

*/

public Object processArrayValue(Object arg0, JsonConfig arg1) {

// TODO 自动生成方法存根

return process(arg0);

}



/* (非 Javadoc)

* @see net.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String, java.lang.Object, net.sf.json.JsonConfig)

*/

public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {

// TODO 自动生成方法存根

return process(arg1);

}

private Object process(Object value) {

return dateFormat.format((Date) value);



}

分享到:
评论

相关推荐

    java json api,json api

    Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...

    java json依赖包(完整直接可用版)

    Java JSON 依赖包是开发Java应用时处理JSON数据的关键组件,尤其在进行Web服务或前后端交互时。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...

    java json工具包

    1. `json-lib-2.3-jdk15.jar`:这可能是JSON库的一个版本,JSON Lib是一个Java实现的JSON处理器,它提供了将Java对象转换为JSON格式和从JSON反序列化回Java对象的功能。版本2.3-jdk15可能表示它兼容Java 1.5版本。 ...

    javajson的lib

    Java JSON的库主要被用来处理JSON(JavaScript Object Notation)数据格式,这是一种轻量级的数据交换格式,广泛用于客户端和服务器之间的数据传输。在Java中,有多种JSON库可供选择,如Jackson、Gson、org.json等。...

    java json 所有jar包

    Java JSON技术是开发中常用的序列化和反序列化工具,特别是在Web服务和后端开发中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,处理...

    java json 相关的所有jar包

    JSON-B(Java API for JSON Binding)是Java的一个标准,类似于JAXB,但用于JSON和Java对象之间的自动绑定。它简化了JSON与Java对象的转换过程。 这些jar包包含了处理JSON所需的各种工具和功能,例如: - JSON解析...

    Java json jar包 包括全部6个包 可以直接使用

    Java JSON Jar包是Java开发中处理JSON数据必不可少的工具库,尤其在进行Web服务或前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁和高效而受到广泛欢迎。在Java中,如果...

    java json-lib解决无循环的探索例子

    Java中的json-lib库是处理JSON数据的一个常用工具,它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。然而,在处理复杂的嵌套数据结构时,如果不小心可能会导致无限循环的问题。 在...

    java json jar包合集

    该压缩包包含json使用到的所有jar,jar版本如下: commons-beanutils-1.9.2.jar,commons-collections-3.2.1.jar,commons-lang-2.6.jar, commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,json-lib-2.4-jdk15.jar ...

    JsonPath 是java Json库,最新源代码

    JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源...

    javajson包

    Java中的`javajson`包,就是为了让Java开发者能够方便地处理JSON数据,将Java对象转换为JSON字符串,或者将JSON字符串解析为Java对象。 在给定的压缩包文件中,我们看到几个关键的库文件,这些是`javajson`包正常...

    java json所需要的jar包

    里面包含所有java 使用json所需要的jar包,包含json-lib-2.4-jdk15,ezmorph-1.0.6,commons-logging-1.1.1,commons-lang-2.5,commons-beanutils-1.8.0,commons-collections-3.2.1

    java json解析简单测试

    关于java json解析的简单测试,简单示例

    Java Json序列化与反序列化

    Java中的JSON(JavaScript Object Notation)序列化与反序列化是开发过程中常见且重要的操作,主要用于数据交换和存储。JSON是一种轻量级的数据交换格式,它允许我们将Java对象转换为JSON字符串,反之亦然,方便在...

    JAVA json包

    1. **json-lib**: `json-lib-2.2.2-jdk15.jar`是这个集合中的核心包,它是一个Java实现的JSON库,提供了将Java对象转换为JSON格式和从JSON字符串还原Java对象的功能。支持多种Java类型,如JavaBean、Map、List等,...

    java json所依赖的所有jar包(json.jar.rar)

    java json所依赖的所有jar包(json.jar.rar) java json所依赖的所有jar包(json.jar.rar) java json所依赖的所有jar包(json.jar.rar)

    java json xml转换

    本文将详细探讨Java中JSON与XML的互转,以及如何在实际开发中运用这些技术。 标题:“java json xml转换” 描述:“java版的json与xml之间的转换的实例demo” JSON和XML各有优缺点。JSON以其简洁、易于阅读和生成...

    java json 工具类java json 工具类

    java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类

    javajson.zip

    `javajson.zip`这个压缩包可能包含的是与Java处理JSON相关的类库或者示例代码。虽然没有具体文件内容,但我们可以根据常见场景来分析其中可能涵盖的知识点。 1. **JSON基本结构**:JSON由对象和数组构成,对象是...

    java json文档和示例

    1. Jackson:Jackson是Java中广泛使用的JSON库,提供了高性能的读写功能,支持多种API,如`ObjectMapper`用于对象与JSON之间的转换,`JsonNode`用于处理JSON树结构。 2. Gson:Google提供的Gson库可以轻松地将Java...

Global site tag (gtag.js) - Google Analytics