Json解析工具类JsonHelper

利用Gson快速解析json

需要导入Gson包,解析成一个对象或一个包含此对象的list

JsonHelper代码如下:

import java.util.ArrayList;
import java.util.List;
import android.text.TextUtils;

import com.google.gson.Gson;
import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;

public class JsonHelper {
    private static JsonHelper util;

    public static JsonHelper getInstance() {

        if (util == null) {
            util = new JsonHelper();

        }
        return util;

    }
    private JsonHelper() {
        super();
    }

    public String createJsonString(Object value) {
        Gson gson = new Gson();
        String str = gson.toJson(value);
        return str;
    }

    public <T> T getObject(String jsonString, Class<T> cls) {
        T t = null;
        try {
            if (isGoodJson(jsonString)) {
                Gson gson = new Gson();
                t = gson.fromJson(jsonString, cls);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }

    public <T> List<T> getList(String jsonString, TypeToken<T> tt) {
        List<T> list = new ArrayList<T>();
        try {
            if (isGoodJson(jsonString)) {
                Gson gson = new Gson();

                list = gson.fromJson(jsonString, tt.getType());
            }

        } catch (Exception e) {
        }
        return list;
    }

    public boolean isBadJson(String json) {
        return !isGoodJson(json);
    }

    public boolean isGoodJson(String json) {
        if (TextUtils.isEmpty(json)) {
            return false;
        }
        try {
            new JsonParser().parse(json);

        } catch (JsonParseException e) {
            return false;
        }

        return true;
    }

}

使用方法

Bean bean = new Bean();
        bean.age="30";
        bean.name="name";
        String result = JsonHelper.getInstance().createJsonString(bean);
        System.out.println(result);
        Bean bean2 = JsonHelper.getInstance().getObject(result, Bean.class);
        System.out.println(bean2.toString());

        ArrayList<Bean> list = new ArrayList<Bean>();
        list.add(bean);
        list.add(bean2);
        result = JsonHelper.getInstance().createJsonString(list);
        System.out.println(result);
        List<ArrayList<Bean>> list2 = JsonHelper.getInstance().getList(result, new TypeToken<ArrayList<Bean>>(){});
        System.out.println(list2.toString());

Bean.java

public class Bean {

    String name="";
    String age="";
    @Override
    public String toString() {
        return "Bean [name=" + name + ", age=" + age + "]";
    }

}

打印结果:

03-10 13:47:09.291: I/System.out(22869): {"age":"30","name":"name"}
03-10 13:47:09.291: I/System.out(22869): Bean [name=name, age=30]
03-10 13:47:09.301: I/System.out(22869): [{"age":"30","name":"name"},{"age":"30","name":"name"}]
03-10 13:47:09.301: I/System.out(22869): [Bean [name=name, age=30], Bean [name=name, age=30]]
时间: 2024-10-09 14:30:37

Json解析工具类JsonHelper的相关文章

Json解析工具类

这篇文章我是怀着无比激动的心情写得,为啥为啥?因为都要放假了!你们的小心心是不是已经躁动不安了!族长考虑到现在离高速免费通行还有几个小时,大家也闲来无事,在下就写点让小伙伴们打发打发时间!今天我们就看一点通过Gson-2.3.1.jar封装的工具类!希望有助于你(温馨提醒:别看的忘了游玩出行的时间哦~~) 工具类 package com.sunfreeter.util; import com.google.gson.Gson;import com.google.gson.JsonElement;

Java:JSON解析工具-org.json

一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网址https://github.com/douglascrockford/JSON-java下载org.json源码,并将源码其加入到Eclipse中,即可调用. 2.查看相关的API文档,访问:https://github.com/douglascrockford/JSON-java. https

[转] 各种Json解析工具比较 - json-lib/Jackson/Gson/FastJson

JSON技术的调研报告 一 .各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如

Android应用之——谷歌官方Json解析工具Gson的使用

一.Gson简介 Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为串行化Java对象为JSON字符串,或反串行化JSON字符串成Java对象.也就是Java对象与json字符串间的互相转换,解析. 二.使用方法 Gson的应用主要为toJson与fromJson两个转换函数,而在使用这种对象转换之前需先创建好对象的类型以及其成员才能成功的将JSON字符串成功转换成相对应的对象.即先创建好对应的javabean,javabean中的字段与要转换的

JSON解析工具-org.json使用教程

原文地址:http://www.open-open.com/lib/view/open1381566882614.html 一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网址https://github.com/douglascrockford/JSON-java下载org.json源码,并将源码其加入到Eclipse中,即可调用. 2.查看相关

java处理json的工具类(list,map和json的之间的转换)

需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java

处理json的工具类({本类为处理json的工具类})

<jackson.version>2.2.3</jackson.version> <!-- json --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.3</version> <classifier>jdk15</classif

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

java二维码编码和解析工具类

用到两个jar包: QRCode.jar Qrcodeen.jar package com.banmacoffee.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; imp