JsonObject和Gson详解

参考文件:http://www.cnblogs.com/xwdreamer/archive/2011/12/16/2296904.html
一、JsonObject

1.JAR包简介

要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

  1. commons-lang.jar
  2. commons-beanutils.jar
  3. commons-collections.jar
  4. commons-logging.jar
  5. ezmorph.jar
  6. json-lib-2.4-jdk15.jar
  7. json-lib-2.4-jdk15-javadoc.jar
  8. json-lib-2.4-jdk15-sources.jar

2.JSONObject对象使用

JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。为了使用JSONObject对象,我们要引入"net.sf.json"包。为了给对象添加元素,我们要使用put()方法。

[java] view plaincopy

  1. public static User getUserFromJson(String json) {
  2. User user = new User();
  3. try {
  4. JSONObject obj = JSONObject.fromObject(json);
  5. user.setUserId(obj.getInt(Tables.User.Fields.USERID));
  6. user.setAccount(obj.getString(Tables.User.Fields.ACCOUNT));
  7. user.setPassword(obj.getString(Tables.User.Fields.PASSWORD));
  8. user.setGender(obj.getInt(Tables.User.Fields.GENDER));
  9. user.setPermission(obj.getInt(Tables.User.Fields.PERMISSION));
  10. user.setName(obj.getString(Tables.User.Fields.NAME));
  11. user.setRemark(obj.getString(Tables.User.Fields.REMARK));
  12. user.setContact(obj.getString(Tables.User.Fields.CONTACT));
  13. return user;
  14. } catch (Exception ex) {
  15. ex.printStackTrace();
  16. }
  17. return null;
  18. }

二、Gson处理Json格式数据

1.Object to json格式

[java] view plaincopy

  1. public String getAllVideosByJson() throws Exception {
  2. List<Video> videos = service.getAllVideos();
  3. StringBuilder sb = new StringBuilder();
  4. //Gson gson = new Gson();
  5. Gson gson = new Gson();
  6. String result = gson.toJson(videos);
  7. return result;
  8. }

2.json格式的字符串变为Video对象

[java] view plaincopy

    1. public static List<Video> getJSONAllVideos_2() throws Exception {
    2. String path = "http://192.168.2.107:8080/VideoWeb/VideoServlet?format=json&type=get";
    3. URL url = new URL(path);
    4. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    5. conn.setReadTimeout(5 * 1000);
    6. conn.setRequestMethod("GET");
    7. InputStream inStream = conn.getInputStream();
    8. byte[] data = StreamTool.readInputStream(inStream);
    9. String json = new String(data);
    10. Type typeList = new TypeToken<ArrayList<Video>>() {
    11. }.getType();
    12. Gson gson = new Gson();
    13. ArrayList<Video> videos = gson.fromJson(json, typeList);
    14. return videos;
    15. }
时间: 2024-08-19 08:29:19

JsonObject和Gson详解的相关文章

使用Gson详解

解析json: Gson gson=new Gson(); Person person=gson.fromJson(jsonData,Person.class); 解析json数组: 需要用到TypeToken将期望解析成的数据类型传入到fromJson()方法中: List<Person> people=gson.fromJson(jsonData,newTypeToken<List<Person>>(){}.getType()); package com.jia.n

JSONObject使用方法详解

1.后台接受到前台的json格式的字符串处理       2.后台拼装json格式的字符串               eg.完整的使用例子(获取学生信息的Json) Dao层中的方法 方法一:拼Json,比较麻烦,容易拼错 方法二:更简洁,不存在会拼错的问题

详解Gson使用(一)简单对象转化

JSON是一种轻量级的数据交换格式. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). 在之前我写过一篇文章,<Android解析json数据> http://blog.csdn.net/a249900679/article/details/51195505 介绍了json和用JSONObject.JSONArray解析json数据的方法,接下来几篇文章将会介绍解析json数据的更好的方法:使用Gson解析. Gson是Google推出的用来解析json数据以及将对象转

浅谈Android项目----JSON解析(4种解析技术详解)

json简介 1.概念:json全称是javaScript object Notation,是一种并轻量级的数据交换格式. 2.特点: 1.本质就是具有特定格式的字符串 2.json完全独立于编程语言 3.json比xml数据传输的有效性要高出很多 Android系统也原生的提供了JSON解析的API,但是它的速度很慢,而且没有提供简介方便的接口来提高开发者的效率和降低出错的可能.因此,通常情况下,我们都会选择其他优秀的JSON解析实现,用以替代系统的API,目前JSON解析的开源实现主要包括一

Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送,写这个系列真的很要命,你要去把他们的API文档大致的翻阅一遍,而且各种功能都实现一遍,解决各种bug各种坑,不得不说,极光推送真坑,大家使用还是要慎重,我们看一下极光推送的官网 https://www.jpush.cn/common/ 推送比较使用,很多软件有需要,所以在这个点拿出来多讲讲,我们本节

Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)

最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所帮助. 首先按照惯例先来简单了解一些AsyncHttpClient网络框架的一些知识. 1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用android-a

Android中HttpURLConnection使用详解

认识Http协议 Android中发送http网络请求是很常见的,要有GET请求和POST请求.一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端,如下图所示: 客户端->服务器 客户端向服务器发送请求主要包含以下信息:请求的Url地址.请求头以及可选的请求体,打开百度首页,客户端向服务器发送的信息如下所示: 请求URL(Request URL) 上图中的Request URL就是请求的Url地址,即https://www.baidu.com,该Url没

Android proguard 详解

简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能.官网网址是: http://proguard.sourceforge.net/. 详解 1.原理 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间"字节码"存储于 class 文件中.由于跨平台的需要,Java 字节

Retrofit2.0使用详解

Retrofit2.0使用 随笔 生活是一面镜子,不去擦拭,岁月的灰尘将掩埋它. 转载请标明出处:http://blog.csdn.net/qq_15807167/article/details/51712048 主页 Retrofit20使用 初次了解Retrofit 具体的使用文档 请求体Request Body FORM ENCODED AND MULTIPART 表单和Multipart 异步 VS 同步 Retrofit20的新知识点 Retrofit20的使用方式 使用 注意 如果有