google提供了一个Gson的工具,能够将.json文件转换成对象,具体使用如下:

首先需要将json对象序列号成对象,需要实现JsonDeserializer接口

import com.google.common.collect.Lists;
import com.google.gson.*;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by zhuocongbin
 * date 2018/6/27
 */
public class ProDeserializer implements JsonDeserializer<Student> {@Override
    public Student deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {if (jsonElement == null) {return null;
        }if (!jsonElement.isJsonObject()) {return null;
        }JsonObject jsonObject = jsonElement.getAsJsonObject();
        if (!jsonObject.has("id"))return null;
        int id = jsonObject.get("id").getAsInt();
        String name = jsonObject.get("name").getAsString();
        int age = jsonObject.get("age").getAsInt();
        AddresEntity[] addresEntities = jsonDeserializationContext.deserialize(jsonObject.get("address"), AddresEntity[].class);
        List<AddresEntity> list = Lists.newArrayList(addresEntities);
        Map<Integer, AddresEntity> map = new HashMap<>();
        list.forEach(addresEntity -> {map.put(addresEntity.getId(), addresEntity);
        });
        Student student = new Student(id, name, age, map);
        return student;
    }
}
import com.google.common.collect.Lists;
import com.google.gson.*;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by zhuocongbin
 * date 2018/6/27
 */
public class ProDeserializer implements JsonDeserializer<Student> {@Override
    public Student deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {if (jsonElement == null) {return null;
        }if (!jsonElement.isJsonObject()) {return null;
        }JsonObject jsonObject = jsonElement.getAsJsonObject();
        if (!jsonObject.has("id"))return null;
        int id = jsonObject.get("id").getAsInt();
        String name = jsonObject.get("name").getAsString();
        int age = jsonObject.get("age").getAsInt();
        AddresEntity[] addresEntities = jsonDeserializationContext.deserialize(jsonObject.get("address"), AddresEntity[].class);
        List<AddresEntity> list = Lists.newArrayList(addresEntities);
        Map<Integer, AddresEntity> map = new HashMap<>();
        list.forEach(addresEntity -> {map.put(addresEntity.getId(), addresEntity);
        });
        Student student = new Student(id, name, age, map);
        return student;
    }
}

这里运用了两个反序列化类

test.json文件如下

[{"id":1,
    "name":"te",
    "age":29,
    "address":[{"id":0,
        "city":"chongq"
      },
      {"id":1,
        "city":"beijin"
      }]},
  {"id":2,
    "name":"zhangsan",
    "age":90,
    "address":[{"id":0,
        "city":"chongq"
      },
      {"id":1,
        "city":"beijin"
      }]},
  {"id":3,
    "name":"lisi",
    "age":10,
    "address":[{"id":0,
        "city":"chongq"
      },
      {"id":1,
        "city":"beijin"
      }]}
]

详情源码请看github:https://github.com/zhuocongbin/gson_demo

google的gson工具使用相关推荐

  1. 使用google.gson工具时-JSON(谷歌)的使用

    文章目录 1. 创建GSON的两种方法 getAsString()方法返回JsonNull异常问题解决 自定义的返回:setExclusionStrategies 公司项目中使用的实例: 用法详解参考 ...

  2. 通过google的gson把xml转成json

    在百度上找了很久都没有找到通过google的gson把xml转成json的文档,索性自己查资料写了个小工具,基本功能在代码注释里都描述的比较详细了.由于笔者这边的数据源格式有点乱,所以代码里加了一些容 ...

  3. 【Java】GsonUtils(Gson 工具类)

    Java Gson 工具类 import com.google.gson.*; import com.google.gson.reflect.TypeToken; import lombok.Snea ...

  4. Google Glass是工具不是玩具

    上周,Google Glass正式开放体验购买申请,并在youtube上发布了"透过google眼镜感觉世界"的宣传视频,此外还发起"Glass Explorer&quo ...

  5. SEO优化工具之——Google Adwords 关键词工具

    Google Adwords 关键词工具: 这是最重要的SEO工具之一,也是我最常用的工具之一. 本工具提供给Google Adwords广告商扩展.挑选关键词时使用的工具.不过不管是否登陆GOOGL ...

  6. 谷歌测试工具_使用Google网站优化工具进行A / B测试的指南

    为了在您的网站上产生更多的转化,您必须查看流量统计信息 . Google Analytics(分析)是一项出色的服务,但只能走这么远. A / B测试背后的概念是合理的,并且已经在专业的Interne ...

  7. google protobuf 在线工具

    google protobuf 在线工具 认识google protobuf 文章目录 google protobuf 在线工具 前言 一.gproto是什么? 二.使用步骤 1.导入proto文件 ...

  8. Translatium for Mac(Google在线翻译工具)

    Translatium,谷歌翻译客户端 Translatium for Mac是一款Mac上强大的翻译软件,支持150多种语言和方言,支持语言输入翻译,文本翻译,并且支持相机翻译语言,Translat ...

  9. 十个Google关键词分析工具

    十个Google关键词分析工具 (转载) LoveGoTone 收录于2010-11-22 阅读数:查看   收藏数:5    公众公开  欢迎浏览 LoveGoTone 个人图书馆中收藏的文章,想收 ...

最新文章

  1. 游戏开发基础:A*算法(转)
  2. doAcquireSharedInterruptibly
  3. java html entity encoding,实体“HTML.Version”的声明必须以''结尾
  4. OpenVINO Inference Engine之GetAvailableDevices
  5. FusionCharts破解版导出图片步骤
  6. python在数据分析的应用_Python运用于数据分析的简单教程
  7. java 缓存日志_Java日志缓存机制的实现(3)
  8. 《Android游戏开发详解》一3.7 里程碑
  9. Atitit 项目常用模块 非业务模块 通用技术模块 attilax大总结 理论上可行。但要限制接口方式。 不然现在很多ui与后端接口模式很多,导致组合爆炸。。。 常用模块也就100来个而已。。
  10. 如何用html制作博客页面,HTML个人博客页面
  11. 机器学习数据预处理之字符串转数字
  12. OpenCV空间人工智能竞赛:第一部分
  13. pvr格式的用什么打开_cocos2d 查看pvr图片的详细格式
  14. exsi rh2288hv5 驱动_华为RH2288H V5服务器windows 2012阵列卡驱动
  15. 【语音合成】TensorFlowTTS 中文文本转语音
  16. 知网查重提交论文显示服务器错误,知网查重时显示检测失败是什么原因?
  17. 红米3 android驱动,红米3驱动最新版
  18. mysql 编码错误_【分享】MySQl操作系统提示错误编码
  19. 8421BCD码加法的修正证明
  20. bootstrap自采样再理解

热门文章

  1. 测试人员必备数据库技术之数据库约束(五)
  2. vue 框架总结 使用elementUI
  3. 用Excel数据透视表快速地统计各部门的男女比例
  4. 【python】pymysql
  5. AIGC/ChatGPT这么火,相关的AI产品岗,真的有变多吗?_最新AI产品经理求职动态(28)...
  6. 康耐视visionpro工具大全
  7. Gym 100134L - Labyrinth of the Minotaur
  8. 不运动也能增肌???打一针冬眠黑熊的血清就行
  9. ARM Linux下安装CH341串口驱动
  10. 超强的学习能力是怎样练就的~