Android:JSON 之GSON 解析
来源:互联网 发布:知乎的楠爷李楠 编辑:程序博客网 时间:2024/06/05 03:50
一、 谷歌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字符串
2、使用泛型获取javaBean(核心函数)
Gson的jar:http://code.google.com/p/google-gson/
然后将数据转为json字符串,核心函数是:
B、客户端将json字符串转换为相应的javaBean
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> T getPerson(String jsonString, Class<T> cls) { T t = null; try { Gson gson = new Gson(); t = gson.fromJson(jsonString, cls); } catch (Exception e) { // TODO: handle exception } return t; }public static <T> List<T> getPersons(String jsonString, Class<T> cls) { List<T> list = new ArrayList<T>(); try { Gson gson = new Gson(); list = gson.fromJson(jsonString, new TypeToken<List<cls>>() { }.getType()); } catch (Exception e) { } return list; }public static List<Map<String, Object>> listKeyMaps(String jsonString) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); try { Gson gson = new Gson(); list = gson.fromJson(jsonString, new TypeToken<List<Map<String, Object>>>() { }.getType()); } catch (Exception e) { // TODO: handle exception } return list; }
0 0
- Android:JSON 之GSON 解析
- android之GSON解析JSON
- Android JSON之GSON解析
- Android解析Json数据之Gson解析
- android之Gson解析json的封装
- android开发之 Gson 解析json数组
- Android学习之Json解析库Gson
- Android之使用GSON解析JSON数据
- Android开发之Gson解析json数据
- android JSON解析之JSONObject与GSON
- android JSON解析之JSONObject与GSON
- JSON解析之-Gson
- JSON 之GSON 解析
- JSON 之GSON 解析
- JSON 之GSON 解析
- JSON 之GSON 解析
- JSON 之GSON 解析
- Json解析之gson
- 各种物理动力驱动的动画
- 用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块2)
- 华为下半年将砍80%以上机型 国产品牌弃“机海战术”
- enter键发送,ctrl+enter换行
- Spring@Autowired注解与自动装配
- Android:JSON 之GSON 解析
- linux TOP命令各参数详解
- AS 发送事件
- oracle定时任务(dbms_job)
- xcode开发版本管理中各标识号的定义
- php中return,require,include加括号和不加括号的区别
- ios 页面跳转之间传递数据----通过delegate
- Session的生命周期
- 1408141504-hd-Digital Roots.cpp