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. 【以2-SAT为主题的婚礼UVA11294】

    ·新娘头饰复杂,这个婚礼怪异非凡. ·英文题,述大意:        婚宴上,有一个很长的桌子.桌子两边坐人(即人们坐成两排).新娘坐在其中一排,只能看见桌子对面所有的人.输入的m表示有m对人打过架. ...

  2. POJ 3045 Cow Acrobats

    Description Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away a ...

  3. Feign报错Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client

    问题描述 使用Feign调用微服务接口报错,如下: java.lang.RuntimeException: com.netflix.client.ClientException: Load balan ...

  4. JavaScript实现简单的双向数据绑定

    什么是双向数据绑定 双向数据绑定简单来说就是UI视图(View)与数据(Model)相互绑定在一起,当数据改变之后相应的UI视图也同步改变.反之,当UI视图改变之后相应的数据也同步改变. 双向数据绑定 ...

  5. TensorFlow官方文档

    关于<TensorFlow官方文档> <TensorFlow官方文档>原文地址:http://devdocs.io/tensorflow~python/ ,本次经过W3Csch ...

  6. java集合之HashMap源码解读

    源自:jdk1.8.0_121 HashMap继承自AbstractMap,实现了Map.Cloneable.Serializable. HashMap内部是由数组.链表.红黑树实现的 变量 // 默 ...

  7. jQuery ajax中使用serialize()方法提交表单数据示例

    <form id="form"> 输入账号 :<input id="name" type="text" name=&quo ...

  8. java如何获得数据库表中各字段的字段名

    public class TestDemo { public static Connection getConnection() { Connection conn = null; try { Cla ...

  9. ubuntu14.04拼音输入法问题的解决方法

    14.04的自带的拼音输入法,打字的时候你会发现有很大的问题,打不出来一个完整的字. 解决方法: ibus-daemon -drx   //重启ibus进程 在终端里输一次这个命令就ok了. 或者装个 ...

  10. 【图文详解】Hadoop集群搭建(CentOs6.3)

    本文主要详细地描述了hadoop集群的搭建以及一些配置文件的说明,用于自己复习以及供新人学习,若有错误之处还请指出. 前期准备 先给出我的集群架构: 到hadoop官网下载好hadoop安装包http ...