数据解析2:JSON解析(2)

  JSON解析除了导入json包,通过JSONObject类和JSONArray类进行解析外,还有其他的解析方法,如谷歌Gson解析和阿里巴巴FastJson解析,它们都需要导入相应的包。

  下面主要介绍Gson解析和FastJson解析:

  1.Gson解析:

  

    Gson解析JSON字符串的步骤:

    1.创建Gson对象

      Gson gson = new Gson();

    2.调用Gson的解析方法,fromJson()

     

     其中比较常用的是:

        1)fromJson(String json,Class<T> classOfT);

        2)fromJson(String json,Type typeOfT);

        第一种方法第二个参数是一个.Class对象,该方法返回的是一个类的对象,它解析的原JSON字符串是一个对象形式

        第二种方法第二个参数是一个Type对象,该方法返回的是一个List<T>集合,它解析的原JSON字符串是一个数组形式

          TypeToken<T> token = new TypeToken<T>(){};

          Type type = token.getType();

    示例1:

  运行结果:

  示例2:

 1 package com.gson;
 2
 3 import java.util.List;
 4
 5 import org.json.JSONArray;
 6 import org.json.JSONException;
 7 import org.json.JSONObject;
 8
 9 import com.google.gson.Gson;
10 import com.google.gson.reflect.TypeToken;
11
12 public class Test2 {
13     public static void main(String[] args) throws JSONException {
14         String json = "{persons:[{name:‘jack‘,age:23},{name:‘tom‘,age:20}]}";
15
16         JSONObject object = new JSONObject(json);
17         JSONArray array = object.getJSONArray("persons");
18
19         Gson gson = new Gson();
20         TypeToken<List<Person>> token = new TypeToken<List<Person>>() {
21         };
22         List<Person> list = gson.fromJson(array.toString(), token.getType());
23         System.out.println(list);
24     }
25
26     class Person {
27         String name;
28         String age;
29
30         @Override
31         public String toString() {
32             return "Person [name=" + name + ", age=" + age + "]";
33         }
34     }
35 }

源代码

  运行结果:

  2.FastJson解析

  FastJson可以解析四种类型的JSON字符串: 

  1. JavaBean

Person person = JSON.parseObject(jsonString, Person.class);

2. List<JavaBean>

List<Person> listPerson =JSON.parseArray(jsonString, Person.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>>>(){});

  示例1:

 1 package com.leijia.fastjsondemo;
 2
 3 import com.alibaba.fastjson.JSON;
 4
 5 public class Main {
 6     public static void main(String[] args) {
 7         String jsonStr = "{name:‘Tom‘,age:‘23‘}";
 8         Student student = JSON.parseObject(jsonStr,Student.class);
 9         System.out.println("student:"+student);
10     }
11     private static class Student{
12         String name;
13         String age;
14
15         public String getName() {
16             return name;
17         }
18
19         public void setName(String name) {
20             this.name = name;
21         }
22
23         public String getAge() {
24             return age;
25         }
26
27         public void setAge(String age) {
28             this.age = age;
29         }
30
31         @Override
32         public String toString() {
33             return "Student [name=" + name + ", age=" + age + "]";
34         }
35     }
36 }

  FastJson不仅可以解析Json字符串,同时也可以将对象转换为JSON字符串。

  

  未完,待续。

  

      

  

时间: 2024-08-08 11:19:51

数据解析2:JSON解析(2)的相关文章

iOS之网络数据下载和JSON解析

iOS之网络数据下载和JSON解析 简介 在本文中笔者主要给大家介绍IOS如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点: 1.NSURLConnection 异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 需要通过联网进行操作的应用 网络应用的程序结构? c/s结构:即客户端/服务端 常见的

网络数据下载和JSON解析

ios之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上,下载数据,以及如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点有: 1.NSURLConnection异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 对于iOS开发来说的网络应用,笔者觉得需要通过访问网络,获取服务端数据来实现全

ios的网络数据下载和json解析

ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知识点: NSYRLConnection异步下载和封装 JSON格式和JSON格式解析 数据显示和使用SDwebimage异步下载图片 内容 网络下载基础知识介绍 NSURLConnection使用 JSON格式说明和格式化工具 一个完成页面的实现(包含model和SDWebimage) 什么是网络应

iOS网络数据下载和JSON解析

iOS网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection如何从网络中下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点: 1.NSURLConnection异步下载和封装 #import "ZJHttpRequest.h" //消除performSelector的警告 #pragma clang diagnostic ignored "-Warc-performSelec

ios 网络数据下载和JSON解析

ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示 涉及到得知识: 1.NSURLConnection异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

iOS之 网络数据下载及JSON解析

网络数据下载及JSON解析 简介 在本文章中笔者将要为大家介绍ios中任何利用NSRULConnection从网络上下载数据,如何解析下来的JSON 格式的数据,以及如何显示数据和图片的异步下载 有关的知识点 1.NSRULConnection的异步下载以及封装 2.JSON格式和JSON格式的解析 3.数据显示以及SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 网络应用的程序结构 常见的网络接口形式 常见的数据格式 界面开发的一般流程 2.NSRULConn

IOS 开发之网络数据下载和JSON解析

简介 在本文中,我将给大家介绍ios中如何运用NSURLConnection从网络上下载数据,以及解析JSON数据格式的数据,还有数据的显示和图片异步下载. 涉及到的知识点: 1.NSURLConnection的异步下载和数据请求方法的封装. 2.认识JSON格式和JSON格式的解析使用 3.数据在模拟器上的显示和图片的异步下载(使用SDWebImage异步显示图片,SDWebImage是一个库) 注意: 在ios开发中,无论是数据还是图片都是使用异步下载方法,不能使用同步. 内容 首先,要完成

数据解析2:JSON解析(1)

JSON是网络传输中数据组织的一种格式. 下面为几个不同的JSON数据: 1."{name:'jack',age:23}" 2."{student:{name:'jack',age:23}}" 3."{students:[{name:'jack',age:23},{name:'lily',age:22}]}" 4."{object:{persons:[{name:'呵呵',image:'http://192.168.56.1:8080/

iOS数据解析之JSON解析

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,易于阅读和编写,同时也易于机器解析和生成 JSON文件有两种结构: 1 对象:"名称/值"对的集合,以"{"开始,以"}"结束,名称和值中间用":"隔开 2 数组:值的有序列表,以"["开始,以"]"结束,中间是数据,数据以","分隔 (JSON中