--> Gson解析jar包:  链接:http://pan.baidu.com/s/1slCeq77 密码:f9ig

--> 官方Json解析工具类:

 package com.dragon.java.jsonwebdata;

 import java.util.ArrayList;
import java.util.List; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; /**
* Json解析的工具类
*
* @author Auser
*
*/
public class JsonUtil {
/**
* 官方解析方法 --> 不管多复杂都可以解析,但是非常复杂!!!
*
* @param json
*/
public static void jsonParse(String json) {
List<Detail> details = new ArrayList<>();
try {
JSONObject object = new JSONObject(json);
if (object.getString("status").equals("000000")) {
if (object.getString("desc").equals("null")) {
details = JSONArray(details, object);
for (Detail detail : details) {
System.out.println(detail);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
} /**
* Json数组
*
* @param details
* @param object
* @return List<Detail>
* @throws JSONException
*/
private static List<Detail> JSONArray(List<Detail> details,
JSONObject object) throws JSONException {
JSONArray array = object.getJSONArray("detail");
for (int i = 0; i < array.length(); i++) {
JSONObject object2 = array.getJSONObject(i);
int id = object2.getInt("id");
int xhid = object2.getInt("xhid");
String author = object2.getString("author");
String content = object2.getString("content");
String picUrl = object2.getString("picUrl");
String status = object2.getString("status");
Detail detail = new Detail(id, xhid, author, content, picUrl,
status);
details.add(detail);
}
return details;
}
}

--> Gson解析工具类:

--> 需要一个Data类 包括:

private String status;
private String desc;
private List<Detail> detail;

且必须有无参构造方法和属性的getter、setter方法

 package com.dragon.java.gsonwebdata;

 import java.util.List;

 import com.dragon.java.jsonwebdata.Detail;
import com.google.gson.Gson; /*
* Gson解析的工具类
*/
public class GsonUtil { /**
* Gson解析
*
* @param json
*/
public static void gsonParse(String json) {
Gson gson = new Gson();
Info info = gson.fromJson(json, Info.class);
List<Detail> detail = info.getDetail();
if (info.getStatus().equals("000000")) {
if (info.getDesc() == null) {
for (Detail detail2 : detail) {
System.out.println(detail2);
}
}
}
}
}

--> 有Gson解析谁还用官方的解析方法啊...

Java-->Gson解析相较于Json的更多相关文章

  1. Android利用Gson解析嵌套多层的Json

    参考:http://www.cnblogs.com/jxgxy/p/3677256.html 比如我们要解析一个下面这种的Json: String json = {"a":&quo ...

  2. java后台解析前端传来的json

    @RequestMapping(value = {"save"}) @ResponseBody public Result save(TBaseInterventionPlan m ...

  3. Gson解析list类型的json串

    Gson gson = new Gson(); Type type = new TypeToken<List<Object>>() {}.getType(); List< ...

  4. 通过Gson解析Json数据

    Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...

  5. Gson解析json数据的案例一

    转自:http://blog.csdn.net/l331258747/article/details/51547338: Android利用Gson解析嵌套多层的Json 首先先讲一个比较简单点的例子 ...

  6. 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

    1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...

  7. Gson解析:java.lang.IllegalArgumentException: declares multiple JSON fields named status 问题的解决

    在一次写定义系统统一返回值的情况下,碰到了java.lang.IllegalArgumentException: declares multiple JSON fields named status这 ...

  8. JAVA使用Gson解析json数据,实例

    封装类Attribute: public class Attribute { private int id; private String name; private int age; public ...

  9. JSON格式之GSON解析

    JSON格式之GSON解析 最近在做websocket相关,项目需要JSON解析.相较之下感觉google的GSON解析不错. JAVA后台 Gson提供了fromJson()方法来实现从Json相关 ...

随机推荐

  1. Robots.txt 协议详解及使用说明

    一.Robots.txt协议 Robots协议,也称为爬虫协议.机器人协议等,其全称为“网络爬虫排除标准(Robots Exclusion Protocol)”.网站通过Robots协议告诉搜索引擎哪 ...

  2. 转 猫都能学会的Unity3D Shader入门指南(二)

    猫都能学会的Unity3D Shader入门指南(二) 关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己 ...

  3. 关于JS的数据类型的一些见解

    关于js里的数据类型这块,说下个人对它的一些见地 js中的数据类型可以归类两类, 简单数据类型:string,number,boolean,null,undefined 复杂数据类型:object 其 ...

  4. python 线程学习

    彩照 一.学习[1] # -*- coding: utf-8 -*- import time import thread def timer(no, interval): cnt = 0 while ...

  5. js的闭包

    一,关于js闭包的只是感觉很高大上似乎,对于学弱来说任何问题都是这样的,值得去钻研和提高. 资料上理解的都是关于js的闭包其实就是js的变量的作用域的灵活使用. 函数内部定义变量的时候,一定要用 va ...

  6. == 区别 equals

    ==操作符专门用来比较值是否相等 int a=10; int b=10; 则 a==b, 返回 true. 但是, String a = new String("foo"); St ...

  7. FTPS链接服务器

    一.首先登录ftp服务器:命令行 lftp user@ip  上传:put  下载: get 二. 关于FTP传输模式与传输的方式 众所周知,FTP传输有两种工作模式,Active Mode和Pass ...

  8. windows目录选择 文件选择 文件保存对话框

    打开文件对话框 const char pszFilter[] = _T("EXE File (*.txt)|*.txt|All Files (*.*)|*.*||"); CFile ...

  9. 【ubuntu】系统设置打不开

    如果系统设置打不开,请重新安装gnome-control-centersudo apt-get install gnome-control-center如果设置里只有很少的几个图标请重新安装unity ...

  10. android应用锁之获取前台进程包名方法

    通过以下方式来获取前台进程的包名: 1.android api 10-20 通过ActivityManager中getRunningTasks来获取. 2.android api 21- 22(部分没 ...