JSON数据之使用Fastjson进行解析(一)

据说FastJson是目前最快的解析Json数据的库,而且是国人开发出来的开源库。顶一下,付上官方网址:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2424946

要使用Fastjson,首先需要下载相对应的jar文件,在官网即可下载。
附上初学的第一个例子,多多指教:

{
    "statuses":[
        {
         "id": 912345678901,
         "text": "How do I stream JSON in Java?",
         "geo": null,
         "user": {
        "name": "json_newb",
        "followers_count": 41
              }
          },

        {
         "id": 777777777888,
         "text": "dfngsdnglnsldfnsl",
         "geo": null,
         "user": {
        "name": "dsfgpd",
        "followers_count": 24
              }
          }
     ]
}

AllBean的Bean类:

package com.lee.JsonToBean;

public class AllBean {
    private long id;
    private String text;
    private String geo;
    private UserBean userBean;
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public String getGeo() {
        return geo;
    }
    public void setGeo(String geo) {
        this.geo = geo;
    }
    public UserBean getUserBean() {
        return userBean;
    }
    public void setUserBean(UserBean userBean) {
        this.userBean = userBean;
    }

}

UserBean的Bean类:

package com.lee.JsonToBean;

public class UserBean {
    private String name;
    private int followers_count;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getFollowers_count() {
        return followers_count;
    }
    public void setFollowers_count(int followers_count) {
        this.followers_count = followers_count;
    }
}

解析类JsonBean:

package com.lee.JsonToBean;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.rtf.RTFEditorKit;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * {
    "statuses":[
        {
         "id": 912345678901,
         "text": "How do I stream JSON in Java?",
         "geo": null,
         "user": {
        "name": "json_newb",
        "followers_count": 41
              }
          },

        {
         "id": 777777777888,
         "text": "dfngsdnglnsldfnsl",
         "geo": null,
         "user": {
        "name": "dsfgpd",
        "followers_count": 24
              }
          }
     ]
}
 * */
public class JsonBean {
    RTFEditorKit rtf;
    DefaultStyledDocument dsd;
    String text;
    public static void main(String[] args) {
        JsonBean bean = new JsonBean();
        // 把字符串转为Json对象,这是因为我的json数据首先是json对象
        JSONObject jobj = JSON.parseObject(bean.readRtf(new File("json.rtf")));
        // 然后是jsonArray,可以根据我的json数据知道
        JSONArray arr = jobj.getJSONArray("statuses");
        // 根据Bean类的到每一个json数组的项
        List<AllBean> listBeans = JSON.parseArray(arr.toString(), AllBean.class);
        // 遍历
        for(AllBean bean_ : listBeans){
            // 我这个demo的json数据获得第一层的数据
            System.out.println(bean_.getText());
            System.out.println(bean_.getId());
            // 我这个demo的json数据获得第二层的数据
            System.out.println(bean_.getUserBean().getFollowers_count());
        }
    }

    // 因为我把json数据放进rtf文件,这是读取rtf文件的json数据,转化为字符串
    public String readRtf(File in) {
        rtf=new RTFEditorKit();
        dsd=new DefaultStyledDocument();
        try {
            rtf.read(new FileInputStream(in), dsd, 0);
            text = new String(dsd.getText(0, dsd.getLength()));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (BadLocationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return text;
    }
}

最后,附上程序代码:FastJsonTest.zip

from: http://www.cnblogs.com/lee0oo0/archive/2013/05/08/3066371.html

时间: 2024-12-20 16:19:35

JSON数据之使用Fastjson进行解析(一)的相关文章

ajax(第一篇)将json数据提交到action并解析

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <

Android网络之数据解析----使用Google Gson解析Json数据

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4063452.html 联系方式:[email protected] [正文] 文章回顾: Android网络之数据解析----SAX方式解析XML数据 一.Json数据的介绍                                                             

Android中使用Gson解析JSON数据的两种方法

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组

iOS开发——XML/JSON数据解析

除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,GCD多线程编程,不做详细介绍,在代码出现的地方会注明. 先安利一波: Json XML 大数据时代,我们需要从网络中获取海量的新鲜的各种信息,就不免要跟着两个家伙打交道,这是两种结构化的数据交换格式.一般来讲,我们会从网络获取XML或者Json格式的数据,这些数据有着特定的数据结构,必须对其进行解析,得到我们可以处理的数据.所谓“解析”,就是从事先规定好的格式串中提取数据.解析的前提是数据的提供方

Django之AJAX传输JSON数据

AJAX中JSON数据传输: AJAX请求JSON类型数据: ·         AJAX通过GET或者POST方式都可以发送JSON数据请求,需要指定内容类型:‘Content-Type':'application/json',post请求必须设置 headers:{'X-CSRFToken': $('input[name=csrfmiddlewaretoken]').val()},在请求头部进行csrf认证: ·         请求数据data经过JSON.stringify()进行序列化

spring boot (二):使用fastJson解析json数据

如果我们想在spring boot中使用第三方的json解析框架: 1)我们需要在pom.xml文件中引入第三方包的依赖; 2)实现方法: 方法1 需要在启动类中继承WebMvcConfigurerAdapter 类,并重写该类的configureMessageConverters方法. 方法2. 我们直接使用@Bean注入第三方的 解析框架. 1.引入fastJson的依赖库 <dependency> <groupId>com.alibaba</groupId> &l

阿里巴巴fastjson 包的使用解析json数据

Fastjson是一个Java语言编写的高性能功能完善的JSON库.由阿里巴巴公司团队开发的. 主要特性主要体现在以下几个方面: 1.高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson.并且还超越了google的二进制协议protocol buf. 2.功能强大 支持各种JDK类型.包括基本类型.JavaBean.Collection.Map.Enum.泛型等. 3.无依赖 不需要例外额外的jar,能够直接跑在JDK上. 4

fastjson生成和解析json数据,序列化和反序列化数据

本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>) 2.通过一个android程序测试fastjson的用法. fastjson简介: Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack

用fastjson框架解析Json数据工具类

在Android应用开发中,APP端与server交互的数据一般是json格式的数据,那么为了方便操作,我们通常会用json解析框架来帮助我们进行数据操作.经常使用的有Gjson和fastjson框架.在项目中用到了fastjson解析数据,当然前提是要准备要对应的jar包工具,把工具类(主要是json数据与实体bean之间的转换操作)贴出来方便以后使用: public class FastJsonTools { /** * 用fastjson 将json字符串解析为一个 JavaBean *