json操作json类型转换
前提是需要加Jar包:
gson-2.2.2.jar
package utils;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import model.dll.WebServiceParams;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
public class GSonUtils {
/**
* 将List<Map<String,Object>>转换成JSON字符串
*
* @param o
* @return
*/
public static String parseListMap2JSon(Object o) {
Gson gson = new GsonBuilder().create();
return gson.toJson(o, new TypeToken<List<Map<String, Object>>>() {
}.getType());
}
/**
* 将JSON格式转换成Map
*
* @param json
* @return
*/
public static Map<String, Object> parseJSON2Map(String json) {
Map<String,Object> map = new HashMap<String, Object>();
Gson gson = new GsonBuilder().create();
JsonReader reader = new JsonReader(new StringReader(json));
map = gson.fromJson(reader, new TypeToken<Map<String, Object>>() {
}.getType());
return map;
}
/**
* 将JSON转成List<Map>
*
* @param json
* @return
*/
public static List<Map<String, Object>> parseJSON2ListMap(String json) {
List<Map<String,Object>> rst = new ArrayList<Map<String,Object>>();
Gson gson = new Gson();
JsonReader reader = new JsonReader(new StringReader(json));
rst = gson.fromJson(reader, new TypeToken<List<Map<Object,String>>>() {
}.getType());
return rst;
}
/**
* 将对象转换成JSON格式
* @param o
* @return
*/
public static String parse2JSON(Object o) {
if(o == null){
return "";
}
Gson g = new GsonBuilder().create();
String json = g.toJson(o,o.getClass());
return json;
}
/**
* 将json字符串转换成指定类型的对象
* @param json
* @param typeToken
* @return
*/
public static <T> T parseJson2(String json, TypeToken<T> typeToken){
Gson gson = new Gson();
JsonReader reader = new JsonReader(new StringReader(json));
return gson.fromJson(reader, typeToken.getType());
}
public static WebServiceParams parseJson2WebServiceParams(String json){
return GSonUtils.parseJson2(json, new TypeToken<WebServiceParams>(){});
}
}
================demo案例json互转类型===============================
String infos = test();//json map类型格式:{"pubuser":"{\"code\":\"test\",\"dateRegister\":\"2013-09-24 14:11:46.0\",\"password\":\"c4ca4238a0b923820dcc509a6f75849b\",\"id\":\"e6ee44f3-98ab-4446-bd9b-db2e525d3b24\",\"serialNum\":148,\"status\":0}","info":"{\"dbVersion\":22}"}
//解析json map格式
Map<String, String> map = parseJson2(infos,new TypeToken<Map<String, String>>() {});// json==》map
String pubuser = map.get("pubuser");
Pubuser pubs = parseJson2(pubuser, new TypeToken<Pubuser>() {
});// json==》Pubuser(实体对象)
//实体对象转换成json map格式
public String test(){
Map<String,String> map = new HashMap<String,String>();
Tradings data = new Tradings();//实体对象
data.setId(UUID.randomUUID().toString());
data.setCost(19.2);
map.put("trading", parse2JSON(data));
return parse2JSON(map);
}
/**
* 将对象转换成JSON格式
*
* @param o
* @return
*/
public static String parse2JSON(Object o) {
if (o == null) {
return "";
}
Gson g = new GsonBuilder().create();
String json = g.toJson(o, o.getClass());
return json;
}
/**
* 将json字符串转换成指定类型的对象
*
* @param json
* @param typeToken
* @return
*/
public static <T> T parseJson2(String json, TypeToken<T> typeToken) {
Gson gson = new Gson();
JsonReader reader = new JsonReader(new StringReader(json));
return gson.fromJson(reader, typeToken.getType());
}
/**
* 将JSON转成List<Map>
*
* @param json
* @return
*/
public static List<Map<String, Object>> parseJSON2ListMap(String json) {
List<Map<String, Object>> rst = new ArrayList<Map<String, Object>>();
Gson gson = new Gson();
JsonReader reader = new JsonReader(new StringReader(json));
rst = gson.fromJson(reader, new TypeToken<List<Map<Object, String>>>() {
}.getType());
return rst;
}
json操作json类型转换的更多相关文章
- C#应用Newtonsoft.Json操作json
Newtonsoft.Json是一个开源的C#操作json的项目,应用起来非常简单.其github地址; 下面的代码演示了如何应用Newtonsoft.Json序列号和反序列化. using Newt ...
- Newtonsoft.Json 操作 JSON 字符串
Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSeriali ...
- 使用 Newtonsoft.Json 操作 JSON 字符串
一.把实体类转化为 JSON 字符串 1. 为实体类赋值 SenderFromMQSearch senderFromMQSearch = new SenderFromMQSearch(); sende ...
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
基于 Vue.js 之 iView UI 框架非工程化实践记要 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...
- C#应用Newtonsoft.Json操作json[2]-反序列化不定类型
在读json时,有时不知道对方的数据类型是什么样的,本文用Newtonsoft,把json反序列化为List>,在某种情况下还是有用的. private static List<Dicti ...
- C#使用Newtonsoft.Json操作json
1.下载 Newtonsoft.Json 右键引用,选择 管理NuGet程序包,选择浏览,输入log4net,然后点击下载 2.json数据的组装与解析 public class Class { pu ...
- JSON和GSON操作json数据
1,JSON操作json import net.sf.json.JSONArray; import net.sf.json.JSONObject; //json操作数据 public static S ...
- SqlServer 操作 JSON
SqlServer 操作 JSON Intro Sql Server 从 2016 开始支持了一些 json 操作,最近的项目里也是好多地方直接用字段直接存成了 json ,需要了解一下怎么在 Sql ...
- js中的json操作
js中的json操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScr ...
随机推荐
- php 在函数内引用全局变量 讲解引用
<?php $var1 = "Example variable"; $var2 = ""; function global_references($use ...
- ADG打补丁
1 产品DG备库安装 16494615 补丁 主库停止向备库传输日志 alter system set log_archive_dest_state_2=defer; alter system set ...
- 【转】Eclipse编辑shell的插件(shellEd)
原文网址:http://blog.sina.com.cn/s/blog_a42d507e01019mlp.html Eclipse官方网站:http://download.eclipse.org/ 1 ...
- 通过反射执行get、set方法
Class clazz = sourceObj.getClass(); 1.获取所有属性 BeanInfo beanInfo = Introspector.getBeanInfo(clazz); Pr ...
- Groovy获取json和xml数据
如果是xml就用这个 // to read a node from your Response def grUtils = new com.eviware.soapui.support.GroovyU ...
- kinect 录制彩色和深度视频
安装 KinectSDK-v1.8-Setup.exe OpenNI-Windows-x86-2.1.0.msi Qt工程 拷贝 Redist 下内容到 编译的exe所在目录 #include < ...
- 使用clipboard.js复制页面内容到剪切板
最近在做一个的智能客服Web端浏览器应用,其中有一项需求是客户在获取系统返回的 答案后点击“复制答案”按钮将答案复制到系统剪切板.本以为这是一个小case,但是发现如果 要对各种主流浏览器都有良好的兼 ...
- 比赛组队问题 --- 递归解法 --- java代码 --- 八皇后问题
两队比赛,甲队为A.B.C3人,乙队为X.Y.Z3人.已知A不和X比,C不和X.Z比,请编程序找出3队赛手名单 采用了与八皇后问题相似的解法,代码如下: 如有疑问请链接八皇后问题的解法:http:// ...
- 【LeetCode】217 & 219 - Contains Duplicate & Contains Duplicate II
217 - Contains Duplicate Given an array of integers, find if the array contains any duplicates. You ...
- PHP相关图书推荐
PHP和MySQL Web开发(原书第4版) 作 者 [澳] Luke Welling,[澳] Luke Welling 著:武欣 等 译 出 版 社 机械工业出版社 出版时间 2009-0 ...