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. POJ2187Beauty Contest 旋转卡壳

    题目链接 http://poj.org/problem?id=2187 先求凸包 再求凸多边形直径 旋转卡壳模板题 #include<cstdio> #include<cstring ...

  2. 笔记11 在XML中声明切面(2)

    为通知传递参数 1.声明一个CompactDiscs接口.内部包含两个方法: show() 用于显示唱片的名字和艺术风格 playTrack(int number) 根据传入的磁道数播放相应磁道的音乐 ...

  3. Linux的哲学思想

    1.一切皆文件:2.单一目的的小程序:3.组合小程序完成复杂任务:4.文本文件保存配置信息:5.尽量避免捕获用户接口:6.提供机制,而非策略. 说到底Linux的哲学思想在于方便和更好的管理后台,不同 ...

  4. JMeter如何和Charles进行接口测试

    什么是接口测试,接口测试到底如何开展,我相信任何一个软件测试人员都会有这样的疑问, 这里我以接口测试自动化平台的登录接口进行讲解. 一.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测 ...

  5. 判定程序员等级,HashMap就够了

    JDK1.8  HashMap源码分析 用到的符号: ^异运算:两个操作数相同,结果是;两个操作数不同,结果是1. &按位与:两个操作数都是1,结果才是1. 一.HashMap概述 在JDK1 ...

  6. ACM KMP 格式输入导致TLE

    在写 Oulipo   POJ - 3461 时候遇上的奇怪的问题 在格式输入上不一样,提交的时候返回TLE,两段代码如下: A#include<iostream> #include< ...

  7. PHP MySQL Delete

    DELETE 语句用于从数据库表中删除行. 删除数据库中的数据 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_name WHERE some_col ...

  8. Android开发过程中在sh,py,mk文件中添加log信息的方法

    Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...

  9. Dynamics CRM 产品视图列上自带按钮的隐藏

    CRM中对command bar的处理都是使用ribbon workbench,但是很多系统自带的按钮你是没法在ribbon workbench看到的,咱们以产品为例,比如我要隐藏form上的保存按钮 ...

  10. DoesNotExist at /account/

    DoesNotExist at /account/ User has no account. Request Method: GET Request URL: http://127.0.0.1:800 ...