JSONObject  
   JSONObject jsonObject = new JSONObject(strJson);
JSONArray jsonArray = jsonObject.getJSONArray("data");
{}  Jsonstr      bean      bean1....


[]


大括号{}
Gson gson = new Gson();
bean  b1 = gson.fromJson(Jsonstr,bean.class)




中括号[]:
 Gson
gson = new Gson();

List<bean>  list = gson.fromJson(jsonString, new TypeToken<List<bean.class>>() {}.getType());



Gson:


使用泛型获取javaBean(核心函数)


(1),对象类型数据
public static <T> T getPerson(String jsonString, Class<T> cls) {

        T
t = null;

        try
{

            Gson
gson = new Gson();

            t
= gson.fromJson(jsonString, cls);

        }
catch (Exception e) {

            //
TODO: handle exception

        }

        return
t;

    }

(2),集合类型数据

public static <T> List<T> getPersons(String jsonString, Class<T> cls) {

        List<T>
list = new ArrayList<T>();

        try
{

           Gson
gson = new Gson();

            list
= gson.fromJson(jsonString, new TypeToken<List<cls>>() {

            }.getType());

        }
catch (Exception e) {

        }

        return
list;

    }
(3),集合中含map类型数据

public static List<Map<String, Object>> listKeyMaps(String jsonString) {

        List<Map<String,
Object>> list = new ArrayList<Map<String, Object>>();

        try
{

            Gson
gson = new Gson();

            list
= gson.fromJson(jsonString,

                    new
TypeToken<List<Map<String, Object>>>() {

                    }.getType());

        }
catch (Exception e) {

            //
TODO: handle exception

        }

        return
list;

    }

eg:
public static Mode getJson2(String json){

Gson gson = new Gson();
Mode mode = gson.fromJson(json, Mode.class);

return mode;
}








FastJson:

(1),集合类型数据
 List<T> datas = JSON.parseArray(str,T.class):解析一个数组    {jsonArray} [,,,,,,]
(2),对象类型数据
  T t = JSON.parseObject(str,T.class):解析一个对象  {jsonObject}  {}




FastJson对象的知识点:

fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。

主要特点

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson

  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

  • 零依赖(没有依赖其它任何类库除了JDK)


一 、生成Json:
JavaBean、List<JavaBean>、List<String>、List<Map<String,Object>>

  1. String jsonString = JSON.toJSONString(obj);

二、解析Json:
(1)JavaBean
            Class class= JSON.parseObject(jsonString, Class.class);  
(2)List<JavaBean
            List<Class> class=JSON.parseArray((jsonString, Class.class);  

(3)List<String>

            List<String> listString = JSON.parseArray(jsonString, String.class);  

(4)List<Map<String,Object>>

        List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new                                TypeReference<List<Map<String,Object>>>(){});  

解析JSON的三种方式的更多相关文章

  1. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  2. go 中解析JSON的三种姿势

    背景 这是一篇写给0-1年新人的文章,短平快的教会你如何解析json字符串. 示例Json 假设有如下json字符串: { "userName":"admin" ...

  3. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  4. js中将字符串转换成json的三种方式

    1,eval方式解析,恐怕这是最早的解析方式了.如下: function strToJson(str){ var json = eval('(' + str + ')'); return json; ...

  5. C#解析json的两种方式

    C#中Json转换主要使用的几种方法! 这篇主要介绍2.4.第三种方法使用的比较局限,所以我没有深入学习. 第二种方法 我使用比较多的方式,这个方法是.NET内置的,使用起来比较方便 A.利用seri ...

  6. 字符串转换成JSON的三种方式

    采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON ).ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中J ...

  7. unity解析json的两种方式

    一直比较钟情于json,用来做数据交互,堪称完美!下面简单说一下unity使用C#脚本如何解析json数据吧. 一.写解析类,借助于JsonUtility.FromJson 直接给个例子吧 1.jso ...

  8. ajax操作json的三种方式

    一. 什么是json? 1. JSON是一种轻量级的数据交换格式 2. JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在 ...

  9. 解析JSON有俩种方式:JSONObject和GSON

    JSONObject: //JSONObject解析JSON文件 private void parseJSONWithJSONObject(String json_data) { try { JSON ...

随机推荐

  1. Unix系统的文件目录项的内容是什么,这样处理的好处是什么?

    (Unix系统采用树型目录结构,而且目录中带有交叉勾链.每个目录表称为一个目录文件.一个目录文件是由目录项组成的.) 每个目录项包含16个字节,一个辅存磁盘块(512B)包含32个目录项.在目录项中, ...

  2. vim的基本介绍

    vim四种模式: 1.正常模式(Normal-mode) 当我们打开vim时就会进入到正常模式,这个时候是不能编辑的,一般用于浏览文件,包括复制,删除一些文本操作.我们可以通过键盘的上下左右来进行光标 ...

  3. React .js框架的环境搭建

    React学习笔记(一)- 环境搭建   最近在学习react相关的知识,刚刚起步,一路遇坑不断.自己做个笔记,方便日后总结,也供相同趣味的小伙伴一起交流探讨. 学习时主要参考官网的教程:https: ...

  4. linux安装mysql数据库

    安装mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-4.0.23-0.i386.rpm MySQL-client-4.0.23-0.i386.rp ...

  5. vue环境搭建过程中,遇到的坑爹的问题

    1,在配置package.json下载node依赖包时,执行$cnpm install过程中,这个过程是比较漫长的,尤其的这种core i5配置的电脑,简直有点卡的人怀疑人生,后来动了下有消息输出,我 ...

  6. Jupyter Notebook

    Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言.在本文中,我们将介绍 Jupyter notebook 的主要特性,以 ...

  7. 工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧

    Unity 是一个备受欢迎的游戏开发平台.它的功能令人印象深刻,同时也迎合了不同的游戏开发需求.游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 RPG 游戏到最流行的增强现实游戏 Po ...

  8. java中的final和volatile详解

    相比synchronized,final和volatile也是经常使用的关键字,下面聊一聊这两个关键字的使用和实现 1.使用 final使用: 修饰类表示该类为终态类,无法被继承 修饰方法表示该方法无 ...

  9. 安卓高级Fresco图片框架的时候

    Fresco:2015FaceBook推出的 及其强大 支持webp图片格式 和渐进式图片加载 中文文档 使用方法 引入依赖 点击查看具体教程 基本使用步骤 在布局中使用其标签 <com.fac ...

  10. Objective-C构造方法

    Objective-C构造方法 构造方法:用来初始化的方法 创建对象的原理 之前我们创建对象的方式一直是使用[Xxx new] 但是使用 new 创建的对象,都是给我们默认做了初始化的. 有的时候,我 ...