/**
* 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 </br> <a href="mailto:fx19800215@163.com"> robert.feng</a>
*
*/
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;
}
}
相关推荐
java处理JSON格式数据的通用类,详细的介绍了java和Json之间的相关联系以及各种类型的转换
一个java处理JSON格式数据的通用类.pdf 用java处理json格式的数据,因此封装了一个class
。。。
。。。
包括java读取JSON格式数据,以及将JSON数据格式转换为List,或者Map格式的,,值得一看。。
在Json4Ext中,目前提供了生成以下几种格式的Json数据的工具类: 1. ExtJS中普通消息类型的Json字符串 2. ExtJS中的Grid控件需要的Json字符串 3. ExtJS中常用的数组类型的Json字符串 4. ExtJS中的Tree控件需要的...
读取student表的数据内容,将其转为JSON格式,发送给Kafka; 再从Kafka中获取到JSON格式数据,打印出来。 编写生产者程序,将json文件数据发送给Kafka; 编写消费者程序,读取Kafka的json文件数据,并手动提交偏移量...
经过实战检验的json数据解析,手把手教你如何解析...当调用第三方接口时如何做到快准狠的json数据的解析,怎么去处理数据,新手看一遍就懂,不服来辩,我就设置最低价格,实战经验带你轻松愉快的去解析数据!!!!!!
资源为欧标充电桩通用协议OCPP1.6标准的通信协议原文。其中包括所有消息事件的JOSN格式定义。...可以通过模拟发送JSON格式的包来模拟充电桩的业务流程。 如果有欧标充电桩OCPP协议的问题欢迎留言讨论。
当时通用的数据交换语言是XML,但是Douglas Crockford觉得XML的生成和解析都太麻烦,所以他提出了一种简化格式,也就是Json。 Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个...
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
为了和JSON数据的格式一致,关联字段只声明了关联实体的主键属性,并没有写成嵌套实体类的形式。 ER图因为墙的原因暂时更新不了…… 实体关联 参照ER图 属性说明 如果没有特殊说明,均为整型数字 Ship 舰船 shipNo /...
JSON模式的通用AVRO模式生成器。 支持的数据类型是数字细绳大批目的空值布兰用法git克隆mvn全新安装命令行用法:- java -jar target / avro-schema-generator-1.0-SNAPSHOT.jar'{“ key1”:2.2,“ key2”:{“ key...
geojson-geometry-shp,在java中,需要三种格式数据的转化,通过pdf文件总结到一起,方便进行开发。
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...
Postgres JSONB字段的spring-data-jpa用法这个简单的项目可用作在JSONB字段中通用存储数据的PoC。 在将特定于职业的信息存储在联接表中的情况下,借助Postgres中的JSONB字段,我们可以将所有信息存储在一个表中,而...