前提是需要加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类型转换的更多相关文章

  1. C#应用Newtonsoft.Json操作json

    Newtonsoft.Json是一个开源的C#操作json的项目,应用起来非常简单.其github地址; 下面的代码演示了如何应用Newtonsoft.Json序列号和反序列化. using Newt ...

  2. Newtonsoft.Json 操作 JSON 字符串

    Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSeriali ...

  3. 使用 Newtonsoft.Json 操作 JSON 字符串

    一.把实体类转化为 JSON 字符串 1. 为实体类赋值 SenderFromMQSearch senderFromMQSearch = new SenderFromMQSearch(); sende ...

  4. 基于 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 时代,包括其插件在需要时就引 ...

  5. C#应用Newtonsoft.Json操作json[2]-反序列化不定类型

    在读json时,有时不知道对方的数据类型是什么样的,本文用Newtonsoft,把json反序列化为List>,在某种情况下还是有用的. private static List<Dicti ...

  6. C#使用Newtonsoft.Json操作json

    1.下载 Newtonsoft.Json 右键引用,选择 管理NuGet程序包,选择浏览,输入log4net,然后点击下载 2.json数据的组装与解析 public class Class { pu ...

  7. JSON和GSON操作json数据

    1,JSON操作json import net.sf.json.JSONArray; import net.sf.json.JSONObject; //json操作数据 public static S ...

  8. SqlServer 操作 JSON

    SqlServer 操作 JSON Intro Sql Server 从 2016 开始支持了一些 json 操作,最近的项目里也是好多地方直接用字段直接存成了 json ,需要了解一下怎么在 Sql ...

  9. js中的json操作

    js中的json操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScr ...

随机推荐

  1. BZOJ 1076 奖励关

    注意几点: 1.为什么要逆推?由此状态可以轻易算出彼状态是否可行,而彼状态却无法轻易还原为此状态. 2.为什么可以逆推?假设时光倒流了....23333 3.注意位运算的准确,大胆写方程. #incl ...

  2. HDU 1512 Monkey King

    左偏树.我是ziliuziliu,我是最强的 #include<iostream> #include<cstdio> #include<cstring> #incl ...

  3. AIX 第5章 指令记录

    AIX引导过程 AIX不同引导模式 AIX的关闭 AIX的计划任务 AIX服务的管理 AIX的常用日志 POST=Power On Self Test   rc.boot 的三次调用 /etc/ini ...

  4. 【转】Bootloader之uBoot简介(转)

    原文网址:http://blog.csdn.net/sadamoo/article/details/8139946 来自http://blog.ednchina.com/hhuwxf/1915416/ ...

  5. Android 从java字节码告诉你 为什么Handler会造成内存泄露

    很多人面试的时候,都知道Handler 极易造成内存泄露,但是有一些讲不出来为什么,好一点的 会告诉你looper msg 之类的,但是你再往下问 为什么msg持有handler handler为什么 ...

  6. 【转】ios开发之AppDelegate

    创建应用程序之后之后,默认有AppDelegate.h文件与AppDelegate.m文件.   AppDelegate为何物?  AppDelegate为整个应用的一个代理,提供程序启动.退出等类似 ...

  7. org-mode

    org-mode 编辑   目录 1简介 2扩展     1简介编辑 Org-模式(Org-mode)是文本编辑软件Emacs的一种支持内容分级显示的编辑模式.这种模式支持写 to-do 列表,日志管 ...

  8. PHP中cookie与session总结

    PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置.Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用. 理解:session用于单一用户与服务器的 ...

  9. 【转】IPC-消息队列

    一.    概念 消息队列就是一个消息的链表.对消息队列有写权限的进程可以向其中按照一定的规则添加新消息:对消息队列有读权限的进程可以从消息队列中读出消息.消息队列是随内核持续的.下面介绍三个概念: ...

  10. JQuery实现分页程序代码,源码下载

    Web开发,分页在所难免的,微软GridView.AspPager等设置分页数据可以自动分页,但是这里浏览器会闪动,用户体验不是很友好,在此我整理了JQuery实现分页,并且使用 JQuery模板显示 ...