参考文件: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()方法。

  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格式

  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对象

    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. }

JsonObject和Gson详解的更多相关文章

  1. JSONObject使用方法详解

    1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...

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

    json简介 1.概念:json全称是javaScript object Notation,是一种并轻量级的数据交换格式. 2.特点: 1.本质就是具有特定格式的字符串 2.json完全独立于编程语言 ...

  3. JAVA中的四种JSON解析方式详解

    JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...

  4. 搜索引擎框架之ElasticSearch基础详解(非原创)

    文章大纲 一.搜索引擎框架基础介绍二.ElasticSearch的简介三.ElasticSearch安装(Windows版本)四.ElasticSearch操作客户端工具--Kibana五.ES的常用 ...

  5. 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解

    目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...

  6. Android 网络框架之Retrofit2使用详解及从源码中解析原理

    就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全 ...

  7. Android proguard 详解

    本文转载于:http://blog.csdn.net/banketree/article/details/41928175 简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往 ...

  8. Java构造和解析Json数据的两种方法详解二

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...

  9. Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解

    Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...

随机推荐

  1. 每日英语:Got a Case of the Mondays? Blame the Sunday Blues

    Welcome to Monday morning at the office. Did you have trouble sleeping last night? Was your stomach ...

  2. python求线性回归斜率

    一. 先说我对这个题目的理解 直线的x,y方程是这样的:y = kx+b, k就是斜率. 求线性回归斜率, 就是说 有这么一组(x, y)的对应值——样本.如果有四组,就说样本量是4.根据这些样本,做 ...

  3. js 数组的增删改查

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...

  4. mysql 通过echo的方式写入数据库 中文乱码解决方案

    echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op ...

  5. 确保安全的HTTPS(对HTTP加密的几种技术,前端面试常问)第一篇

    HTTP固然足够好,但是在安全方面有着很大隐患: 1.与服务器进行通信使用的是明文,内容可能会被窃听(HTTP协议本身并不具备加密功能,所以无法对请求和响应的内容进行加密) 2.使用HTTP协议的服务 ...

  6. The Swift.org Blog welcome欢迎页note

    The Swift.org Blog Welcomehtml, body {overflow-x: initial !important;}html { font-size: 14px; } body ...

  7. 【WPF】ListBox嵌套与事件冒泡

    问题:两个ListBox嵌套后,当鼠标位于内部ListBox上,鼠标滚轮事件会被内部ListBox接收,导致外层ListBox不能用鼠标滚轮滑动!现在的需求是该事件要能给外部ListBox处理,即嵌套 ...

  8. <邱永汉股票入门>读书笔记

    书在这里 在踏入股票市场以前,首先必须具备的观念就是“我能够亏损的极限是多少”?而不仅仅是我该准备多少钱 任何投资都要具备智慧性的忍耐力 基本分析注重的是公司营运业绩的报告与企业体质的解释:技术分析则 ...

  9. [转]uboot中SPI Flash Booting配置

    转自:https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/t/124834 最近和人一起调试SPI FLASH的配置问题,做 ...

  10. [sql]sqlite3板子上安装运行报错

    不管是apt-get install还是deb直接安装都抱如下错误: SQLite header and source version mismatch -- ***** -- *****