JsonObject和Gson详解
参考文件:http://www.cnblogs.com/xwdreamer/archive/2011/12/16/2296904.html
一、JsonObject
1.JAR包简介
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
- commons-lang.jar
- commons-beanutils.jar
- commons-collections.jar
- commons-logging.jar
- ezmorph.jar
- json-lib-2.4-jdk15.jar
- json-lib-2.4-jdk15-javadoc.jar
- 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()方法。
- public static User getUserFromJson(String json) {
- User user = new User();
- try {
- JSONObject obj = JSONObject.fromObject(json);
- user.setUserId(obj.getInt(Tables.User.Fields.USERID));
- user.setAccount(obj.getString(Tables.User.Fields.ACCOUNT));
- user.setPassword(obj.getString(Tables.User.Fields.PASSWORD));
- user.setGender(obj.getInt(Tables.User.Fields.GENDER));
- user.setPermission(obj.getInt(Tables.User.Fields.PERMISSION));
- user.setName(obj.getString(Tables.User.Fields.NAME));
- user.setRemark(obj.getString(Tables.User.Fields.REMARK));
- user.setContact(obj.getString(Tables.User.Fields.CONTACT));
- return user;
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
二、Gson处理Json格式数据
1.Object to json格式
- public String getAllVideosByJson() throws Exception {
- List<Video> videos = service.getAllVideos();
- StringBuilder sb = new StringBuilder();
- //Gson gson = new Gson();
- Gson gson = new Gson();
- String result = gson.toJson(videos);
- return result;
- }
2.json格式的字符串变为Video对象
- public static List<Video> getJSONAllVideos_2() throws Exception {
- String path = "http://192.168.2.107:8080/VideoWeb/VideoServlet?format=json&type=get";
- URL url = new URL(path);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setReadTimeout(5 * 1000);
- conn.setRequestMethod("GET");
- InputStream inStream = conn.getInputStream();
- byte[] data = StreamTool.readInputStream(inStream);
- String json = new String(data);
- Type typeList = new TypeToken<ArrayList<Video>>() {
- }.getType();
- Gson gson = new Gson();
- ArrayList<Video> videos = gson.fromJson(json, typeList);
- return videos;
- }
JsonObject和Gson详解的更多相关文章
- JSONObject使用方法详解
1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...
- 浅谈Android项目----JSON解析(4种解析技术详解)
json简介 1.概念:json全称是javaScript object Notation,是一种并轻量级的数据交换格式. 2.特点: 1.本质就是具有特定格式的字符串 2.json完全独立于编程语言 ...
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- 搜索引擎框架之ElasticSearch基础详解(非原创)
文章大纲 一.搜索引擎框架基础介绍二.ElasticSearch的简介三.ElasticSearch安装(Windows版本)四.ElasticSearch操作客户端工具--Kibana五.ES的常用 ...
- 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解
目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...
- Android 网络框架之Retrofit2使用详解及从源码中解析原理
就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全 ...
- Android proguard 详解
本文转载于:http://blog.csdn.net/banketree/article/details/41928175 简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往 ...
- Java构造和解析Json数据的两种方法详解二
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
- Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解
Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...
随机推荐
- python将列表元素按指定数目分组
比如,有时候,我们需要将列表中的元素,按照每5个分组,分成好几个组时,可以采用下面的代码 a = [1,2,3,4,5,6,7,8,9,10,11] step = 5 b = [a[i:i+step] ...
- 如何使用IDEA开发工具中右键中的Git图形化工具
首先,你的项目一定是git服务器上面down下来的,下面来演示如何使用IntelliJ IDEA 开发中在鼠标右键中提供的一个非常方便的图形化Git管理工具: 这里使用的IDEA开发工具的版本是 In ...
- 获取控制台窗口句柄GetConsoleWindow
在创建direct 3D对象时需要一个窗口句柄,在命令行程序中又不想调用windows api创建窗口对象,所以尝试查找控制台下有无可用并且有效的窗口句柄.找了一下,函数原型如下: HWND WINA ...
- maven relativePath
父项目的pom.xml文件的相对路径.默认值为../pom.xml.maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库.RelativePath允许你选择一个不同的 ...
- goto语句的升级版,setjmp,longjmp
我们知道goto语句是不能跳过函数的,但是在我么C语言的应用中,在不使用汇编的情况下,遇到需要跳出深层循环比如检错机制的时候,有确实想要跨函数跳转,有没有上面办法可以做到呢? 这就是今天要讲的两个库函 ...
- Web通信
客户在浏览器输入一个有效的url地址开始,浏览器会利用socket向url对应的web服务器发送一个TCP请求,这个请求成功一次就需要来回握三次手才能确定,成功以后,浏览器利用socket TCP连接 ...
- select 操作选中添加、删除操作Javascript
//添加选中项 function addItem() { var myMember = document.getElementById("myMember"); var other ...
- FTDI通用转USB芯片简述
FTDI公司的FT2232系列芯片可实现USB与异步串行口RS232/RS485.同步串行总线IIC/SPI/JTAG相互通信,市场占有率,使用普遍. FTDI芯片有两种类型的驱动:virtual C ...
- maven配置阿里云仓库
在mirrors的节点中添加: <mirror> <!--This sends everything else to /public --> <id>nexus-a ...
- 【进阶修炼】——改善C#程序质量(8)
122,以<Company>.<Component>作为命名空间. 如Microsoft.Windows.Design.也可以用域名作为空间,如www.microsoft.co ...