参考文件: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. python将列表元素按指定数目分组

    比如,有时候,我们需要将列表中的元素,按照每5个分组,分成好几个组时,可以采用下面的代码 a = [1,2,3,4,5,6,7,8,9,10,11] step = 5 b = [a[i:i+step] ...

  2. 如何使用IDEA开发工具中右键中的Git图形化工具

    首先,你的项目一定是git服务器上面down下来的,下面来演示如何使用IntelliJ IDEA 开发中在鼠标右键中提供的一个非常方便的图形化Git管理工具: 这里使用的IDEA开发工具的版本是 In ...

  3. 获取控制台窗口句柄GetConsoleWindow

    在创建direct 3D对象时需要一个窗口句柄,在命令行程序中又不想调用windows api创建窗口对象,所以尝试查找控制台下有无可用并且有效的窗口句柄.找了一下,函数原型如下: HWND WINA ...

  4. maven relativePath

    父项目的pom.xml文件的相对路径.默认值为../pom.xml.maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库.RelativePath允许你选择一个不同的 ...

  5. goto语句的升级版,setjmp,longjmp

    我们知道goto语句是不能跳过函数的,但是在我么C语言的应用中,在不使用汇编的情况下,遇到需要跳出深层循环比如检错机制的时候,有确实想要跨函数跳转,有没有上面办法可以做到呢? 这就是今天要讲的两个库函 ...

  6. Web通信

    客户在浏览器输入一个有效的url地址开始,浏览器会利用socket向url对应的web服务器发送一个TCP请求,这个请求成功一次就需要来回握三次手才能确定,成功以后,浏览器利用socket TCP连接 ...

  7. select 操作选中添加、删除操作Javascript

    //添加选中项 function addItem() { var myMember = document.getElementById("myMember"); var other ...

  8. FTDI通用转USB芯片简述

    FTDI公司的FT2232系列芯片可实现USB与异步串行口RS232/RS485.同步串行总线IIC/SPI/JTAG相互通信,市场占有率,使用普遍. FTDI芯片有两种类型的驱动:virtual C ...

  9. maven配置阿里云仓库

    在mirrors的节点中添加: <mirror> <!--This sends everything else to /public --> <id>nexus-a ...

  10. 【进阶修炼】——改善C#程序质量(8)

    122,以<Company>.<Component>作为命名空间. 如Microsoft.Windows.Design.也可以用域名作为空间,如www.microsoft.co ...