java gson 解析json字符串_JSON 之GSON 解析
一、 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
二、Gson解析Json步骤
A、服务器端将数据转换成json字符串
首先、服务器端项目要导入Gson的jar包到BuiltPath中。(Gson的jar:http://code.google.com/p/google-gson/
我们还可以下载gson的帮助文档)
然后将数据转为json字符串,核心函数是:
public
static String createJsonString(Object value)
{
Gson gson = new Gson();
String str =
gson.toJson(value);
return
str;
}
B、客户端将json字符串转换为相应的javaBean
首先客户端也要导入gson的两个jar包,json的jar就不需要导入了(因为android项目中已经集成了json的jar包所以这里无需导入)
1、客户端获取json字符串
public class HttpUtil
{
public static String getJsonContent(String urlStr)
{
try
{// 获取HttpURLConnection连接对象
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
// 设置连接属性
httpConn.setConnectTimeout(3000);
httpConn.setDoInput(true);
httpConn.setRequestMethod("GET");
// 获取相应码
int respCode = httpConn.getResponseCode();
if (respCode == 200)
{
return ConvertStream2Json(httpConn.getInputStream());
}
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
private static String ConvertStream2Json(InputStream
inputStream)
{
String jsonStr = "";
// ByteArrayOutputStream相当于内存输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
// 将输入流转移到内存输出流中
try
{
while ((len = inputStream.read(buffer, 0, buffer.length)) !=
-1)
{
out.write(buffer, 0, len);
}
// 将内存流转换为字符串
jsonStr = new String(out.toByteArray());
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonStr;
}
}
2、使用泛型获取javaBean(核心函数)
public
static T getPerson(String
jsonString, Class cls) {
T t =
null;
try {
Gson gson = new Gson();
t =
gson.fromJson(jsonString, cls);
} catch
(Exception e) {
// TODO:
handle exception
}
return
t;
}
public static
List getPersons(String jsonString,
Class cls) {
List list = new
ArrayList();
try {
Gson gson = new Gson();
list =
gson.fromJson(jsonString, new
TypeToken>()
{
}.getType());
} catch
(Exception e) {
}
return
list;
}
public static List
Object>> listKeyMaps(String
jsonString) {
List
Object>> list = new
ArrayList
Object>>();
try {
Gson gson = new Gson();
list =
gson.fromJson(jsonString,
new
TypeToken
Object>>>() {
}.getType());
} catch
(Exception e) {
// TODO:
handle exception
}
return
list;
}
java gson 解析json字符串_JSON 之GSON 解析相关推荐
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
1.JSON的String字符串与Java的List列表对象的相互转换 在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为jso ...
- java中gso是什么意思_Java中用Gson解析json字符串
本文最后更新于2019年9月13日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 因为阿里开源的fastjson前段时间爆出的漏洞实在是太多了(而且有些漏洞他 ...
- android jackson 解析json字符串,android:json解析的两个工具:Gson和Jackson的使用小样例...
1.简单介绍 json是android与server通信过程中经常使用的数据格式,比如.例如以下是一个json格式的字符串: {"address":"Nanjing&qu ...
- Gson案例:Java对象与JSON字符串相互转换
Gson案例:Java对象与JSON字符串相互转换 一.Gson概述 Gson是一个Java类库,可将Java对象转换为相应的JSON形式,也可以将JSON字符串转换为对应的Java对象.Gson是一 ...
- Gson解析json字符串,并封装成ListT
最近一个项目中,需要将从服务器上获取到的JSON字符串转换为对象,大概研究了一下,发现在项目中很多地方都要用到,而且有的时候需要返回的是一个集合,所以写了个方法,留着自用. public class ...
- Java解析json字符串和json数组
Java解析json字符串和json数组 public static Map<String, String> getUploadTransactions(String json){Map& ...
- java处理json字符串_常见java对象转换为json字符串处理!!!
1.JSON简介 1. 概念: JavaScript Object NotationJavaScript对象表示法 Person p = new Person(); p.setName("张 ...
- java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧
java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...
- 如何在Java中转义JSON字符串-Eclipse IDE技巧
在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. 这是测试和学习Java中解 ...
- cjson构建_[置顶] cJSON库(构建json与解析json字符串)-c语言
一.c语言获取json中的数据. 1.先要有cJOSN库,两个文件分别是cJSON.c和cJSON.h. 2.感性认识 char * json = "{ \"json\" ...
最新文章
- python3连接mysql,python3连接MySQL数据库实例详解
- 开源人工智能使用卷积网格自动编码器生成3D面部
- 【RLChina2020】 强化学习夏令营课件(附pdf下载)
- layer.open 模态弹窗, 隐藏关闭按钮, 隐藏按钮组
- 零基础,最完整的WordPress建站教程
- 程序清单3-1 测试能否对标准输入设置偏移量
- unity3d 大地图接壤_架空世界地图制作指南(六)气候带
- java 素数欧拉筛选_[C++]欧拉素数筛的理解与实现
- 4项探索+4项实践,带你了解华为云视觉预训练研发技术
- SpringCloud工作笔记033---找不到import org.springframework.cloud.client.discovery.EnableDiscoveryClient;无法导入
- c#面试3(选择题)
- 关于Javascript表单验证
- PenTool:一个基于Qt的仿真软件Demo
- 怎么清理ug10注册表_鼠标的滚轮失灵了怎么办
- idea返回上一步快捷键无效
- python爬取淘宝数据魔方_读《淘宝数据魔方技术架构解析》有感
- 【angular-实践】实现浏览器F11全屏效果
- iOS开发 动画(Animation)图片360度不停旋转
- 国产数据库普及风暴有奖征文获奖名单揭晓
- Kettle 9.0 源码编译