按目前来说,大多数前端和后台的交互数据的格式,基本都是以json格式为主,json数据已经是变得很常见了。为了能够更加方便的处理json数据,我自己封装了一个工具类,使得能够更加方便快捷的去处理json数据。

先上代码

TypeBuilder类

public class TypeBuilder implements ParameterizedType {    private final Class raw;    private final Type[] args;    public TypeBuilder(Class raw, Type[] args) {        this.raw = raw;        this.args = args != null ? args : new Type[0];    }    @Override    public Type[] getActualTypeArguments() {        return args;    }    @Override    public Type getRawType() {        return raw;    }    @Override    public Type getOwnerType() {        return null;    }}

JsonUtil主工具类

public class JsonUtil {    private static Gson gson = null;    static {        GsonBuilder builder = new GsonBuilder();        builder.registerTypeAdapter(JsonObject.class, new JsonDeserializer() {            @Override            public Object deserialize(JsonElement jsonElement, Type type,                                      JsonDeserializationContext jsonDeserializationContext)                    throws JsonParseException {                JsonObject jsonObject = jsonElement.getAsJsonObject();                return jsonObject;            }        });        builder.registerTypeAdapter(Double.class, new JsonSerializer() {            @Override            public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {                if (src == src.longValue())                    return new JsonPrimitive(src.longValue());                return new JsonPrimitive(src);            }        });        gson = builder.disableHtmlEscaping().create();    }    /**     * JSON字符串转成对象     *     * @param content     * @param clazz     * @param      * @return     */    public static  T fromJsonObject(String content, Class clazz) {        if (StringUtil.isEmpty(content)) {            return null;        }        Type type = new TypeBuilder(clazz, new Class[]{clazz});        return gson.fromJson(content, type);    }    /**     * JSON字符串转成数组     *     * @param content     * @param clazz     * @param      * @return     */    public static  List fromJsonArray(String content, Class clazz) {        if (StringUtil.isEmpty(content)) {            return null;        }        // 生成List 中的 List        Type listType = new TypeBuilder(List.class, new Class[]{clazz});        return gson.fromJson(content, listType);    }    /**     * 将对象转换成字符串     *     * @param object     * @return     */    public static String toJson(Object object) {        if (object == null) {            return null;        }        return gson.toJson(object);    }    /**     * 将对象转换成map对象     *     * @param obj     * @return     */    public static Map toMap(Object obj) {        JsonElement element = gson.toJsonTree(obj);        return gson.fromJson(element, Map.class);    }    public static  T fromJsonObject(Object obj, Class clazz) {        Type type = new TypeBuilder(clazz, new Class[]{clazz});        JsonElement element = gson.toJsonTree(obj);        return gson.fromJson(element, type);    }    public static  List fromJsonArray(Object obj, Class clazz) {        Type listType = new TypeBuilder(List.class, new Class[]{clazz});        JsonElement element = gson.toJsonTree(obj);        return gson.fromJson(element, listType);    }}

使用方法

1.例如我们收到的一个json数据为

String jsonData="{"name":"张三","age":1,"phone":"13000000000"}"

2.我们需要根据这个数据格式,新建一个对象

public class User{private String name;private int age;private String phone;...忽略get方法和set方法}

3.使用工具类的fromJsonObject方法

User user=JsonUtil.fromJsonObject(jsonData,User.class);

这样我们就可以将字符串的数据转换为一个对象。

如果我们需要将一个对象转成字符串,则只需要使用toJson方法即可

User user=new User();user.setName("李四");String data=JsonUtil.toJson(user);//输出的data则为{"name":"李四","age":0,"phone":null}

把数据对象转成字符串_Android Json数据的转换相关推荐

  1. [转载] 把数据对象转成字符串_python入门基础培训教程,Python 字符串学习

    参考链接: Python字符串| printable python入门基础培训教程中,字符串的学习即基础又非常重要,如果不能掌握好python字符串,对于以后python课程的学习,将会带来严重的错误 ...

  2. js字符串怎么转python对象_python对象与json相互转换的方法 python中怎么把json对象转成字符串...

    在python中 如何实现将一个json字符串转化为对象 对象?json不能包含对象, 只能包含基本的数据类型, 键值对, 列表, 数字, 字符串等等 import jsond = {"k& ...

  3. 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串

    只需要一句,arr.__proto__=[];但是要注意浏览器支持__proto__才行,最新的浏览器应该都支持. 以下两种都可以解决此问题: function transform(obj){ var ...

  4. js中字符串转成对象,对象转成字符串

    JSON.stringify() 对象转成字符串 JSON.parse(); 字符串转成对象

  5. FrontEnd——数组、字符串、JSON之间的转换和操作

    文章目录 简介 方案 1 插件或者说第三方库 1.1 flatted 1.2 circular-json(不推荐) 1.3 qs参数序列化 2 原生的方法 2.1 JSON.stringfy() 2. ...

  6. Esp8266 进阶之路28 【高级篇】教你轻松自如使用cJson在乐鑫 esp8266 如何解析一段json数据以及如何生成一段json数据。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  7. HQChart使用教程11-如何把K线数据API替换成自己的API数据

    HQChart使用教程11-如何把K线数据API替换成自己的API数据 设置API域名 Vue: uniapp: HQChart代码地址 HQChart只提供前端行情展示, 不提供行情API数据,De ...

  8. MUI:字符串和json数据的相互转换

    JSON.parse()--字符串转换json. JSON.stringify()--json转换成字符串 如:收到Json对象:response,则: {"result":&qu ...

  9. html对象转成字符串,4.对象转化为字符串

    4_对象转化为字符串 14:56 思维导图.png 序列化,指将 JavaScript 值转化为 JSON 字符串的过程. JSON.stringify() 能够将 JavaScript 值转换成 J ...

最新文章

  1. python 数据分析学什么-利用Python做数据分析 需要学习哪些知识
  2. python中浅拷贝与深拷贝
  3. boost::lambda::constructor用法的测试程序
  4. GDCM:转储一个DICOM文件,显示DICOM中的结构和值的测试程序
  5. flex内根据id(string)获取对象
  6. 【Transformer】Are Transformers More Robust Than CNNs?
  7. ASCII码与string的相互转换
  8. 【jQuery笔记Part4】03-事件详解
  9. CentOS的 ifconfig/mail/traceroute命令不存在
  10. 群辉 NAS 配置 iSCSI 存储
  11. 电脑使用技巧 快捷键
  12. MySQL使用Mycat实现分库分表-读写分离
  13. 2021年中国商品期货交易规模分析:交易量达71.71亿手,同比增长21.15%[图]
  14. 【双卡尔曼滤波】基于simulink仿真的双卡尔曼滤波
  15. python 抽奖 完全公平的随机数算法_抽奖 随机数
  16. Python AutoCAD 注释
  17. androidstudio安装的app打开闪退,AndroidManifest中也声明了类,但是却没有报错信息。(小坑)
  18. JS学习笔记(五)函数类型、箭头函数、arguments参数、标签函数
  19. confluence 制作流程图_「每周开方」 高效制作流程图、思维导图
  20. GIF制作器哪个好,如何制作表情包

热门文章

  1. 全民编程时代,程序员该如何保住饭碗?
  2. 中文深度学习入门书:小白易入,课程、实战项目全有 | 五位导师联合出品
  3. Linux 超全实用指令大全 | CSDN 博文精选
  4. 53 年 IT 老兵详谈传统网络到互联网的演变史
  5. 拒绝与其他码农一致!CSDN定制T让你成为最靓的仔
  6. 面试稳了!集齐几千名程序员精选的 100 道前端面试题!
  7. 漫画:996 的本质是什么?
  8. 酷派起诉小米:你竟敢侵我的权?
  9. 准备好跟机器人正面交锋了吗?
  10. 乔帮主,iOS 9 关键源码被泄露了!