json转换方法
import
java.lang.reflect.Field;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Map;
import
java.util.Set;
import
net.sf.json.JSONArray;
import
net.sf.json.JSONObject;
import
net.sf.json.JsonConfig;
/**
* Json与javaBean之间的转换工具类
*
* @author 晚风工作室 www.soservers.com
* @version 20111221
*
* {@code 现使用json-lib组件实现
* 需要
* json-lib-2.4-jdk15.jar
* ezmorph-1.0.6.jar
* commons-collections-3.1.jar
* commons-lang-2.0.jar
* 支持
* }
*/
public
class
JsonPluginsUtil {
/**
* 从一个JSON 对象字符格式中得到一个java对象
*
* @param jsonString
* @param beanCalss
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> T jsonToBean(String jsonString, Class<T> beanCalss) {
JSONObject jsonObject = JSONObject.fromObject(jsonString);
T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
return
bean;
}
/**
* 将java对象转换成json字符串
*
* @param bean
* @return
*/
public
static
String beanToJson(Object bean) {
JSONObject json = JSONObject.fromObject(bean);
return
json.toString();
}
/**
* 将java对象转换成json字符串
*
* @param bean
* @return
*/
public
static
String beanToJson(Object bean, String[] _nory_changes,
boolean
nory) {
JSONObject json =
null
;
if
(nory){
//转换_nory_changes里的属性
Field[] fields = bean.getClass().getDeclaredFields();
String str =
""
;
for
(Field field : fields){
// System.out.println(field.getName());
str+=(
":"
+field.getName());
}
fields = bean.getClass().getSuperclass().getDeclaredFields();
for
(Field field : fields){
// System.out.println(field.getName());
str+=(
":"
+field.getName());
}
str+=
":"
;
for
(String s : _nory_changes){
str = str.replace(
":"
+s+
":"
,
":"
);
}
json = JSONObject.fromObject(bean,configJson(str.split(
":"
)));
}
else
{
//转换除了_nory_changes里的属性
json = JSONObject.fromObject(bean,configJson(_nory_changes));
}
return
json.toString();
}
private
static
JsonConfig configJson(String[] excludes) {
JsonConfig jsonConfig =
new
JsonConfig();
jsonConfig.setExcludes(excludes);
//
jsonConfig.setIgnoreDefaultExcludes(
false
);
//
// jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
// jsonConfig.registerJsonValueProcessor(Date.class,
//
// new DateJsonValueProcessor(datePattern));
return
jsonConfig;
}
/**
* 将java对象List集合转换成json字符串
* @param beans
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
String beanListToJson(List beans) {
StringBuffer rest =
new
StringBuffer();
rest.append(
"["
);
int
size = beans.size();
for
(
int
i =
0
; i < size; i++) {
rest.append(beanToJson(beans.get(i))+((i<size-
1
)?
","
:
""
));
}
rest.append(
"]"
);
return
rest.toString();
}
/**
*
* @param beans
* @param _no_changes
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
String beanListToJson(List beans, String[] _nory_changes,
boolean
nory) {
StringBuffer rest =
new
StringBuffer();
rest.append(
"["
);
int
size = beans.size();
for
(
int
i =
0
; i < size; i++) {
try
{
rest.append(beanToJson(beans.get(i),_nory_changes,nory));
if
(i<size-
1
){
rest.append(
","
);
}
}
catch
(Exception e){
e.printStackTrace();
}
}
rest.append(
"]"
);
return
rest.toString();
}
/**
* 从json HASH表达式中获取一个map,改map支持嵌套功能
*
* @param jsonString
* @return
*/
@SuppressWarnings
({
"unchecked"
})
public
static
Map jsonToMap(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).toString();
valueMap.put(key, value);
}
return
valueMap;
}
/**
* map集合转换成json格式数据
* @param map
* @return
*/
public
static
String mapToJson(Map<String, ?> map, String[] _nory_changes,
boolean
nory){
String s_json =
"{"
;
Set<String> key = map.keySet();
for
(Iterator<?> it = key.iterator(); it.hasNext();) {
String s = (String) it.next();
if
(map.get(s) ==
null
){
}
else
if
(map.get(s)
instanceof
List<?>){
s_json+=(s+
":"
+JsonPluginsUtil.beanListToJson((List<?>)map.get(s), _nory_changes, nory));
}
else
{
JSONObject json = JSONObject.fromObject(map);
s_json += (s+
":"
+json.toString());;
}
if
(it.hasNext()){
s_json+=
","
;
}
}
s_json+=
"}"
;
return
s_json;
}
/**
* 从json数组中得到相应java数组
*
* @param jsonString
* @return
*/
public
static
Object[] jsonToObjectArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
return
jsonArray.toArray();
}
public
static
String listToJson(List<?> list) {
JSONArray jsonArray = JSONArray.fromObject(list);
return
jsonArray.toString();
}
/**
* 从json对象集合表达式中得到一个java对象列表
*
* @param jsonString
* @param beanClass
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
JSONObject jsonObject;
T bean;
int
size = jsonArray.size();
List<T> list =
new
ArrayList<T>(size);
for
(
int
i =
0
; i < size; i++) {
jsonObject = jsonArray.getJSONObject(i);
bean = (T) JSONObject.toBean(jsonObject, beanClass);
list.add(bean);
}
return
list;
}
/**
* 从json数组中解析出java字符串数组
*
* @param jsonString
* @return
*/
public
static
String[] jsonToStringArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
String[] stringArray =
new
String[jsonArray.size()];
int
size = jsonArray.size();
for
(
int
i =
0
; i < size; i++) {
stringArray[i] = jsonArray.getString(i);
}
return
stringArray;
}
/**
* 从json数组中解析出javaLong型对象数组
*
* @param jsonString
* @return
*/
public
static
Long[] jsonToLongArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
int
size = jsonArray.size();
Long[] longArray =
new
Long[size];
for
(
int
i =
0
; i < size; i++) {
longArray[i] = jsonArray.getLong(i);
}
return
longArray;
}
/**
* 从json数组中解析出java Integer型对象数组
*
* @param jsonString
* @return
*/
public
static
Integer[] jsonToIntegerArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
int
size = jsonArray.size();
Integer[] integerArray =
new
Integer[size];
for
(
int
i =
0
; i < size; i++) {
integerArray[i] = jsonArray.getInt(i);
}
return
integerArray;
}
/**
* 从json数组中解析出java Double型对象数组
*
* @param jsonString
* @return
*/
public
static
Double[] jsonToDoubleArray(String jsonString) {
JSONArray jsonArray = JSONArray.
import
java.lang.reflect.Field;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Map;
import
java.util.Set;
import
net.sf.json.JSONArray;
import
net.sf.json.JSONObject;
import
net.sf.json.JsonConfig;
/**
* Json与javaBean之间的转换工具类
*
* @author 晚风工作室 www.soservers.com
* @version 20111221
*
* {@code 现使用json-lib组件实现
* 需要
* json-lib-2.4-jdk15.jar
* ezmorph-1.0.6.jar
* commons-collections-3.1.jar
* commons-lang-2.0.jar
* 支持
* }
*/
public
class
JsonPluginsUtil {
/**
* 从一个JSON 对象字符格式中得到一个java对象
*
* @param jsonString
* @param beanCalss
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> T jsonToBean(String jsonString, Class<T> beanCalss) {
JSONObject jsonObject = JSONObject.fromObject(jsonString);
T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
return
bean;
}
/**
* 将java对象转换成json字符串
*
* @param bean
* @return
*/
public
static
String beanToJson(Object bean) {
JSONObject json = JSONObject.fromObject(bean);
return
json.toString();
}
/**
* 将java对象转换成json字符串
*
* @param bean
* @return
*/
public
static
String beanToJson(Object bean, String[] _nory_changes,
boolean
nory) {
JSONObject json =
null
;
if
(nory){
//转换_nory_changes里的属性
Field[] fields = bean.getClass().getDeclaredFields();
String str =
""
;
for
(Field field : fields){
// System.out.println(field.getName());
str+=(
":"
+field.getName());
}
fields = bean.getClass().getSuperclass().getDeclaredFields();
for
(Field field : fields){
// System.out.println(field.getName());
str+=(
":"
+field.getName());
}
str+=
":"
;
for
(String s : _nory_changes){
str = str.replace(
":"
+s+
":"
,
":"
);
}
json = JSONObject.fromObject(bean,configJson(str.split(
":"
)));
}
else
{
//转换除了_nory_changes里的属性
json = JSONObject.fromObject(bean,configJson(_nory_changes));
}
return
json.toString();
}
private
static
JsonConfig configJson(String[] excludes) {
JsonConfig jsonConfig =
new
JsonConfig();
jsonConfig.setExcludes(excludes);
//
jsonConfig.setIgnoreDefaultExcludes(
false
);
//
// jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
// jsonConfig.registerJsonValueProcessor(Date.class,
//
// new DateJsonValueProcessor(datePattern));
return
jsonConfig;
}
/**
* 将java对象List集合转换成json字符串
* @param beans
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
String beanListToJson(List beans) {
StringBuffer rest =
new
StringBuffer();
rest.append(
"["
);
int
size = beans.size();
for
(
int
i =
0
; i < size; i++) {
rest.append(beanToJson(beans.get(i))+((i<size-
1
)?
","
:
""
));
}
rest.append(
"]"
);
return
rest.toString();
}
/**
*
* @param beans
* @param _no_changes
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
String beanListToJson(List beans, String[] _nory_changes,
boolean
nory) {
StringBuffer rest =
new
StringBuffer();
rest.append(
"["
);
int
size = beans.size();
for
(
int
i =
0
; i < size; i++) {
try
{
rest.append(beanToJson(beans.get(i),_nory_changes,nory));
if
(i<size-
1
){
rest.append(
","
);
}
}
catch
(Exception e){
e.printStackTrace();
}
}
rest.append(
"]"
);
return
rest.toString();
}
/**
* 从json HASH表达式中获取一个map,改map支持嵌套功能
*
* @param jsonString
* @return
*/
@SuppressWarnings
({
"unchecked"
})
public
static
Map jsonToMap(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).toString();
valueMap.put(key, value);
}
return
valueMap;
}
/**
* map集合转换成json格式数据
* @param map
* @return
*/
public
static
String mapToJson(Map<String, ?> map, String[] _nory_changes,
boolean
nory){
String s_json =
"{"
;
Set<String> key = map.keySet();
for
(Iterator<?> it = key.iterator(); it.hasNext();) {
String s = (String) it.next();
if
(map.get(s) ==
null
){
}
else
if
(map.get(s)
instanceof
List<?>){
s_json+=(s+
":"
+JsonPluginsUtil.beanListToJson((List<?>)map.get(s), _nory_changes, nory));
}
else
{
JSONObject json = JSONObject.fromObject(map);
s_json += (s+
":"
+json.toString());;
}
if
(it.hasNext()){
s_json+=
","
;
}
}
s_json+=
"}"
;
return
s_json;
}
/**
* 从json数组中得到相应java数组
*
* @param jsonString
* @return
*/
public
static
Object[] jsonToObjectArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
return
jsonArray.toArray();
}
public
static
String listToJson(List<?> list) {
JSONArray jsonArray = JSONArray.fromObject(list);
return
jsonArray.toString();
}
/**
* 从json对象集合表达式中得到一个java对象列表
*
* @param jsonString
* @param beanClass
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
<T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
JSONObject jsonObject;
T bean;
int
size = jsonArray.size();
List<T> list =
new
ArrayList<T>(size);
for
(
int
i =
0
; i < size; i++) {
jsonObject = jsonArray.getJSONObject(i);
bean = (T) JSONObject.toBean(jsonObject, beanClass);
list.add(bean);
}
return
list;
}
/**
* 从json数组中解析出java字符串数组
*
* @param jsonString
* @return
*/
public
static
String[] jsonToStringArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
String[] stringArray =
new
String[jsonArray.size()];
int
size = jsonArray.size();
for
(
int
i =
0
; i < size; i++) {
stringArray[i] = jsonArray.getString(i);
}
return
stringArray;
}
/**
* 从json数组中解析出javaLong型对象数组
*
* @param jsonString
* @return
*/
public
static
Long[] jsonToLongArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
int
size = jsonArray.size();
Long[] longArray =
new
Long[size];
for
(
int
i =
0
; i < size; i++) {
longArray[i] = jsonArray.getLong(i);
}
return
longArray;
}
/**
* 从json数组中解析出java Integer型对象数组
*
* @param jsonString
* @return
*/
public
static
Integer[] jsonToIntegerArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
int
size = jsonArray.size();
Integer[] integerArray =
new
Integer[size];
for
(
int
i =
0
; i < size; i++) {
integerArray[i] = jsonArray.getInt(i);
}
return
integerArray;
}
/**
* 从json数组中解析出java Double型对象数组
*
* @param jsonString
* @return
*/
public
static
Double[] jsonToDoubleArray(String jsonString) {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
int
size = jsonArray.size();
Double[] doubleArray =
new
Double[size];
for
(
int
i =
0
; i < size; i++) {
doubleArray[i] = jsonArray.getDouble(i);
}
return
doubleArray;
}
}
fromObject(jsonString);
int
size = jsonArray.size();
Double[] doubleArray =
new
Double[size];
for
(
int
i =
0
; i < size; i++) {
doubleArray[i] = jsonArray.getDouble(i);
}
return
doubleArray;
}
}
json转换方法的更多相关文章
- com.alibaba.fastjson.JSONObject之对象与JSON转换方法
com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串.JSON对象,JSON串转成java对象.JSON对象,JSON对象转换Java ...
- JSON转换方法解析
JSON.parse() 与 JSON.stringify() 的区别 JSON.parse() :是从一个字符串中解析出 json 对象 JSON.stringify():是从一个对象中解析出字符串 ...
- 数据转换为json格式的方法
数据转换为json格式: 如果一张表中存在主外键关系,模板自动生成的类是不可以转换成JSON格式的,此时需要重新写一个类,类前面需加[DataContract],字段前需加[DataMember],实 ...
- EasyUIDataGrid 的List<T>转Json
EasyUI的DataGrid的Json自己拼接的话非常麻烦,而且容易出错,于是写了个通用的方法! CustomList<T>自定义类,继承于List<T>,用来处理返回的实体 ...
- JSON 在Ajax数据交换中的简单运用
随着浏览器内核更新,原先的json.js在最新的谷歌浏览下不管用了,运行报错,特此修改下代码,不使用json.js,使用Object自带的json转换方法,修改时间,2016年10月26日. 首先需要 ...
- Python txt文件读取写入字典的方法(json、eval)
link:https://blog.csdn.net/li532331251/article/details/78203438 一.使用json转换方法 1.字典写入txt import json d ...
- silverlight调用WebService传递json接收绑定数据
1.接收数据: WebService通过接口接收数据.类型为object 2.类型转换: 通过json转换方法将object转换为json格式数据 3.调用WebService方法: silverli ...
- SpringMVC返回JSON数据时日期格式化问题
https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring 在运用SpringMVC框架开发时,可 ...
- Map传参优雅检验,试试json schema validator
背景 笔者目前所在团队的代码年代已久,早年规范缺失导致现在维护成本激增,举一个深恶痛疾的例子就是方法参数使用Map"一撸到底",说多了都是泪,我常常在团队内自嘲"咱硬是把 ...
随机推荐
- [oracle] 组织架构退格显示 connect by
1. 按组织架构关系退格显示 create or replace view v_vieworg asselect --v.OBJID,v.OBJNAMElevel as levelid, lpad(' ...
- CodeIgniter 相关资源
CodeIgniter ci 如果需要扩展多个base Controller,譬如一个 core/MY_Controller表示基本Controller,一个 core/MY_AuthControl ...
- 关于Android Studio更新后一直Refreshing的解决办法!
今天更新了一下studio一直是这个问题 查了很多资料终于解决了 造成这个问题的原因是要更新的gradle版本和studio安装路径中的gradle版本不一致导致的 把他们改成一致的即可 在这个目录里 ...
- 洛谷 p2618 数字工程 记忆化搜索_ 线性筛
我们在线筛的同时处理出每个数的所有质因子,记忆化搜索的时候直接枚举质因子即可. 时间复杂度为 O(nlogn)O(nlogn)O(nlogn) Code: #include<cstdio> ...
- Day 07 数据类型的内置方法[列表,元组,字典,集合]
数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...
- gcp – 源于CP的高级命令行文件拷贝工具
作者:linux 出处:http://linux.cn/thread/11868/1/1/ gcp – 源于CP的高级命令行文件拷贝工具 几周前,我们讨论了高级拷贝(修改于cp命令,让其可以显示复制进 ...
- [luogu1772 ZJOI2006] 物流运输 (最短路 线性dp)
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- 2、使用Python3爬取美女图片-网站中的妹子自拍一栏
代码还有待优化,不过目的已经达到了 1.先执行如下代码: #!/usr/bin/env python #-*- coding: utf-8 -*- import urllib import reque ...
- pytorch 7 optimizer 优化器 加速训练
import torch import torch.utils.data as Data import torch.nn.functional as F import matplotlib.pyplo ...
- [剑指offer] 5. 用两个栈实现队列+[剑指offer]30. 包含min函数的栈(等同于leetcode155) +[剑指offer]31.栈的压入、弹出序列 (队列 栈)
c++里面stack,queue的pop都是没有返回值的, vector的pop_back()也没有返回值. 思路: 队列是先进先出 , 在stack2里逆序放置stack1的元素,然后stack2. ...