package com.test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* JSON和JAVA的POJO的相互转换
*
* @author tanpingping
* @date 2012-5-15
*/
public final class JSONUtils {
/**
* 将String转换成JSON
* @param key
* @param value
* @return json格式的字符串
*/
public String stringToJson(String key, String value) {
JSONObject object = new JSONObject();
object.put(key, value);
return object.toString();
}
/**
* 将JSON转换成数组,其中valueClz为数组中存放的对象的Class
* @param json格式的字符串 如:[{'name':'李名','password':'10aVB','age':'15'}]
* @param valueClz 需要转换的Class对象 如:User
* @return valueClz对象的数组
*/
@SuppressWarnings("unchecked")
public Object jsonToArray(String json, Class valueClz) {
JSONArray jsonArray = JSONArray.fromObject(json);
return JSONArray.toArray(jsonArray, valueClz);
}
/**
* 将Collection转换成JSON
* @param object 需要对象的值转换
* @return
*/
public String collectionToJson(Object object) {
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
/**
* 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class,
* @param json
* @param collectionClz 这个值没用到
* @param valueClz 为Collection中存放的对象的Class
* @return
*/
@SuppressWarnings("unchecked")
public Collection jsonToCollection(String json, Class collectionClz,
Class valueClz) {
JSONArray jsonArray = JSONArray.fromObject(json);
return JSONArray.toCollection(jsonArray, valueClz);
}
/**
* 将数组转换成JSON
* @param object 需要转换的数组
* @return
*/
public String arrayToJson(Object object) {
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
/**
* 将Map转换成JSON
* @param object
* @return
*/
public String mapToJson(Object object) {
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
/**
* 将JSON转换成Map
* @param keyArray 为Map的key
* @param json
* @param valueClz 为Map中value的Class
* @return Map对象
*/
@SuppressWarnings("unchecked")
public Map jsonToMap(Object[] keyArray, String json, Class valueClz) {
JSONObject jsonObject = JSONObject.fromObject(json);
Map classMap = new HashMap();
for (int i = 0; i < keyArray.length; i++) {
classMap.put(keyArray[i], valueClz);
}
return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);
}
/**
* 将POJO转换成JSON
* @param object 需要转换的对象
* @return
*/
public String beanToJson(Object bean) {
JSONObject jsonObject = JSONObject.fromObject(bean);
return jsonObject.toString();
}
/**
* 将JSON转换成POJO
* @param json
* @param beanClz 为POJO的Class
* @return
*/
public Object jsonToObject(String json, Class beanClz) {
return JSONObject.toBean(JSONObject.fromObject(json), beanClz);
}
/**
* 将JSON转换成String
* @param json
* @param key
* @return
*/
public String jsonToString(String json, String key) {
JSONObject jsonObject = JSONObject.fromObject(json);
return jsonObject.get(key).toString();
}
}
分享到:
相关推荐
Delphi对JSON技术操作与应用 申明json数组变量 Arr:TJSONArray; Arr:=TJSONArray(Root.GetValue('data')); 遍历json数组 for i:=0 to Arr.Size - 1 do begin memo1.lines.add(Arr.items[i].value);
总之,Delphi结合SuperObject库提供了一种强大且灵活的方式来处理JSON数据,使得在Delphi应用程序中进行JSON操作变得简单高效。无论是从服务器接收数据,还是向服务器发送数据,SuperObject都能成为你得力的工具。
该"易语言json操作例程"提供了源码,帮助用户理解如何在易语言中处理JSON数据。JSON操作主要包括解析、创建和修改JSON对象,这些操作在与远程服务器交互、存储或读取配置文件时非常有用。 1. **Json_加载**:这个...
在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人和机器都能轻松地阅读和编写数据。为了在Java中处理JSON数据,我们...在实际编程中,还可以结合单元测试确保JSON操作的正确性。
org.json库小巧且易于理解,适合对JSON操作需求简单的项目。 这三种JSON库各有特色,适用场景也有所不同。Fastjson适合对性能有较高要求的场合,Gson则以其灵活的配置和强大的功能见长,而org.json则更适合简单的...
使用此包对json操作,JSONArray json = JSONArray.fromObject(jsonList)
虽然其功能相对有限,但胜在简洁和易懂,适合对JSON操作需求不复杂的项目。 3. net.sf.json.JSONObject net.sf.json.JSONObject是开源项目json-lib的一部分,由SourceForge维护。与org.json.JSONObject相比,...
- `commons-lang-2.4.jar`:包含一些常用的字符串处理和类工具,对JSON操作提供辅助。 - `commons-beanutils-1.8.0.jar`:提供Bean属性的读写操作,方便JSON与Java Bean之间的转换。 - `commons-collections-...
将库文件放入lib目录后,Eclipse可以通过引入这个库来提供对JSON操作的支持,无需通过复杂的构建配置。 JSON库的主要功能包括: 1. **解析JSON字符串**:库提供了将JSON格式的字符串转换为Java对象的方法,例如将...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...同时,这也提醒我们技术的不断发展,如PHP 5.0及以后版本对JSON的内置支持,使得JSON操作变得更加简单和直接。
它的设计思路是对JSON操作进行抽象,使其更接近于Java对象的操作,降低了理解和使用的难度。对于那些寻求简洁和快速原型开发的项目,Ason是一个值得考虑的工具。不过,在大型项目或性能敏感的环境中,可能需要权衡其...
这个"json操作常用工具类"的压缩包很可能是包含了一些常用的Java JSON处理工具,帮助开发者更便捷地进行JSON的解析、生成、序列化和反序列化。 1. **Jackson库** Jackson是Java中最流行的JSON处理库之一,它提供了...
1. 学习理解:可以通过阅读源码了解JSON数据处理的内部机制,加深对JSON操作的理解。 2. 自定义扩展:如果默认功能无法满足需求,开发者可以根据源码进行二次开发,添加自定义功能。 3. 问题排查:当遇到使用中的...
易语言的一个json模版,用来操作json数据
"json.dll"则是一个动态链接库文件,通常在Delphi这样的编程环境中使用,用于提供对JSON操作的支持。Delphi是一种流行的面向对象的编程语言,它使用Pascal语法,常用于开发桌面应用程序。 在Delphi中,我们可以使用...
版本适配: unity2022.3.49, vs2022。 主要内容: 一、json全认识 ... 1.1、unity对json操作的准备工作 1.2、c#对操作的起始工作 1.3、玩家属性: 2、创建json文件 3、保存的json数据 4、读取json数据
PB操作JSON库主要涉及到PowerBuilder(PB)编程环境中对JSON数据的处理。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输。在PowerBuilder中,为了处理...
以下是使用Newtonsoft.Json进行JSON操作的基本步骤: 1. **安装Newtonsoft.Json**:在Visual Studio中,可以通过NuGet包管理器来安装。搜索“Newtonsoft.Json”,然后添加到项目中。 2. **序列化对象**:如果你有...
"易语言json操作例程源码"可能包含了一系列用于解析、生成和操作JSON对象的函数和过程。这些例程可能涵盖了以下关键知识点: 1. JSON数据结构:JSON数据主要由对象和数组构成。对象是键值对的集合,用花括号{}包围...
在本主题中,我们将深入探讨C#中JSON操作的相关知识点,尤其是如何利用内置的System.Text.Json或第三方库Newtonsoft.Json进行解析、序列化以及操作JSON数据。 1. **系统内置的System.Text.Json** 自.NET Core 3.0...