android:json解析的兩個工具:Gson和Jackson的使用小例子
1.簡介
json是android與伺服器通訊過程中常用的資料格式,例如,如下是一個json格式的字串:
- {"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","age":20},{"name":"stu1","id":"10001","age":21},{"name":"stu1","id":"10002","age":22}]}
2.android中常用的兩個json庫為:Gson和Jackson,一下就看一下它們是如何將物件轉化為json字串,以及如何將json字串轉化為java物件。
定義Student類:
- /*
- * $filename: Student.java,v $
- * $Date: 2014-5-12 $
- * Copyright (C) ZhengHaibo, Inc. All rights reserved.
- * This software is Made by Zhenghaibo.
- */
- package com.example.testjson;
- /*
- *@author: ZhengHaibo
- *web: http://blog.csdn.net/nuptboyzhb
- *mail: [email protected]
-
*2014-5-12 Nanjing,njupt,China
- */
- publicclass Student {
- private String name;
- private String id;
- privateint age;
- public String getName() {
- return name;
- }
- publicvoid setName(String name) {
- this.name = name;
- }
- public String getId() {
- return id;
-
}
- publicvoid setId(String id) {
- this.id = id;
- }
- publicint getAge() {
- return age;
- }
- publicvoid setAge(int age) {
- this.age = age;
- }
- }
定義School類:
- /*
- * $filename: School.java,v $
- * $Date: 2014-5-12 $
- * Copyright (C) ZhengHaibo, Inc. All rights reserved.
- * This software is Made by Zhenghaibo.
- */
- package com.example.testjson;
- import java.util.List;
- /*
- *@author: ZhengHaibo
- *web: http://blog.csdn.net/nuptboyzhb
- *mail: [email protected]
- *2014-5-12 Nanjing,njupt,China
- */
- publicclass School {
- private String name;
- private String address;
- List<Student> students;
- public String getName() {
- return name;
- }
- publicvoid setName(String name) {
- this.name = name;
- }
- public String getAddress() {
- return address;
- }
- publicvoid setAddress(String address) {
- this.address = address;
- }
- public List<Student> getStudents() {
- return students;
- }
- publicvoid setStudents(List<Student> students) {
- this.students = students;
- }
- }
初始化一個School的java物件,待使用:
- private School initSchoolData(){
- School school = new School();
- school.setAddress("Nanjing");
- school.setName("NUPT");
- List<Student> list = new ArrayList<Student>();
- for(int i= 0;i<3;i++){
- Student student = new Student();
- student.setAge(20+i);
- student.setId("1000"+i);
- student.setName("stu"+1);
- list.add(student);
- }
- school.setStudents(list);
- return school;
- }
3.使用Gson,進行java物件與json字串之間的相互轉換
- privatevoid testGson(){
- School school = initSchoolData();
- Gson gson = new Gson();
- //將物件轉化為json字串
- String jsonString = gson.toJson(school).toString();
- //列印
- System.out.println("GSON="+jsonString);
- /******分割線*****/
- //將字串轉化為JSON物件
- School resultSchool = gson.fromJson(jsonString, School.class);
- //列印
- System.out.println(resultSchool.getStudents().get(0).getName());
- }
可見,Gson是通過toJson和fromJson兩個方法進行轉換的,使用起來十分方便。
4.使用Jackson
- privatevoid testJackson(){
- School school = initSchoolData();
- ObjectMapper objectMapper = new ObjectMapper();
- String jsonString = "";
- //將物件轉化為Json字串
- try {
- jsonString = objectMapper.writeValueAsString(school);
- System.out.println("Jackson="+jsonString);
- } catch (JsonProcessingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //將json字串解析成java物件
- try {
- School resultSchool = objectMapper.readValue(jsonString, School.class);
- //列印
- System.out.println(resultSchool.getStudents().get(0).getName());
- } catch (JsonParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (JsonMappingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
使用Jackson,主要是使用writeValueAsString和readValue這兩個方法。此外,Jackson的writeValue和readValue有很多種引數型別,適用於多中場合。
注意:以上只是這兩個工具類的基本用法,更多瞭解,參見官方文件。
相關推薦
android:json解析的兩個工具:Gson和Jackson的使用小例子
1.簡介 json是android與伺服器通訊過程中常用的資料格式,例如,如下是一個json格式的字串: {"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","ag
C語言編程的兩個工具:valgrind和core
mit 編程 崩潰 文件 gdb 程序 程序崩潰 檢查內存泄漏 ted 檢查內存泄漏: valgrind --leak-check=full ./ecox_rws_helper 來檢查內存泄漏 程序崩潰看錯誤: ulimit -c unlimited 然後執行程序,會在
Android-json解析(三):原生JSONObject+JSONArray的解析、遍歷及生成等
一、JSONObject和JSONArray的資料表示形式 JSONObject的資料是用 { } 來表示的, 例如: { "id":"1", "courseID":"化學", "title":"滴定實驗",
Android-json解析(二):Jackson的使用
使用Jackson,主要是使用writeValueAsString和readValue這兩個方法。此外,Jackson的writeValue和readValue有很多種引數型別,適用於多中場合。 1、匯入依賴 compile 'com.faste
timestamp的兩個屬性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
當前系統時間 tro 則無 ron 如果 time ren ins 使用情況 timestamp有兩個屬性,分別是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP兩種,使用情況分別如下: 1.CURRENT_TIMEST
影響序列化的兩個關鍵字:transient 和 static
transient:這個關鍵字的作用就是忽略序列化操作,也就是說,當物件中的某個屬性被加上了這個關鍵字後,這個屬性就不會被序列化。這個就不在給出程式碼了,自己可以去嘗試一下,int型別的變數被加上這個關
webview的兩個方法:setWebChromeClient和setWebClient
android.webkit庫聚合了webkit核心的瀏覽器功能,webview就是她的一個控制元件,可以使得網頁輕鬆的內嵌到app裡。 並且比較強大的是,還可以直接跟js相互呼叫。 webview有兩個方法:setWebChromeClient和setWebClient
JUnit4:Test註解的兩個屬性:expected和timeout
JUnit4:Test文件中的解釋: The Test annotation supports two optional parameters. The first, expected, declares that a test method should throw an exception.
Android double保留兩位小數:擷取 和 四捨五入
方式一: BigDecimal.setScale()方法用於格式化小數點 setScale(2);//表示保留2位小數,預設用四捨五入方式 setScale(2,BigDecimal.ROUND_
ORACLE中的兩個概念:user和schema的區別和聯絡
今天重讀ORACLE官方文件《concepts》,讀到schema的基本概念,對它的理解更進一層,官方文件中關於schema是這樣解釋的: “A schema is a collection of database objects. A schema is owned
shell整理(32)===兩個嵌套循環的小例子
心得 shell 思考 (1)shell打印如下圖所示的圖案。shell 代碼如下:#!/bin/bashecho "-"for i in `seq 9`do for x in `seq $i` do echo -n " "
【SSH框架】生成JSON的兩個典型問題:1.使用jsonlib工具獲取關聯屬性失敗。2.獲取關聯屬性出現遞迴導致獲取JSON失敗。附解決方案
問題1原因:hibernate中的物件的關聯屬性預設都是懶載入的,而使用jsonlib這個工具類是通過反射去獲取物件中的關聯屬性的,和我們通過後臺直接獲取的方式不同,通過後臺直接獲取管理屬性會讓hibe
安卓學習筆記 -- (安裝環境) Android Studio安裝配置、環境搭建詳細步驟及基本使用 Android Studio和SDK官方開發工具下載 Android Studio教程從入門到精通 Android開發-之第一個程式:HelloWorld!
1、下載Android Studio安裝配置、環境搭建詳細步驟及基本使用 https://www.cnblogs.com/yanglh6-jyx/p/Android_AS_Configuration.html https://blog.csdn.net/k491022087/ar
JSON工具:gson (google) 、json-lib、fastJson (alibaba)
JSON工具:gson (google) 、json-lib、fastJson (alibaba) 1. 準備工作: &nbs
Android下的兩個檔案系統:proc和sys(一)
Linux層有公共目錄。例如ps命令可以看到所有執行的程序資訊(程序的UID,PID,記憶體,CPU等資訊)。大多數資源由兩個虛擬的檔案系統提供: proc filesystem(procfs) :包括記憶體,CPU,網路等 sys filesystem(sysfs):裝置驅動,網路環境(/sys/class
Ubuntu下兩個專案管理工具:Dia和Planner
一直在widnows下編碼,新鮮一下,試在ubuntu下開發。現將開發經驗share出來,但願能給初學者一些幫助。 簡單介紹一下ubuntu下的UML建模工具,以及專案進度控制工具 1. viso PK dia 在ubuntu下,dia可以完成viso在Window
兩款 Mac 上知名的防休眠工具:Caffeine 和 Amphetamine
標簽頁 enter 程序 屏幕 retina nes 設計 系統 tac 本文標簽: Mac效率工具 Mac小工具 Caffeine Amphetamine Mac 在停止操作一段時間之後會進入休眠狀態。倘若在演示 Keynote 時突遭黑屏,或者在播放電影中忽然罷工,都
Http02App 整合兩個工具類實現下載文件
圖片保存 完成 created reat ace sound trac per out Http02App.java1.使用兩個工具類 實現下載音樂和圖片到本地硬盤中package main;import Http.FileUtils;import Http.HttpUti
Android Json解析Kotlin
style any ray code 鍵值 first aaa use text 1. 首先講一下什麽是Json--下面的就是Json基本格式,其實就是一個鍵值對。 { "people": [ { "firstName": "Brett", "lastNam
android json 解析 kotlin
spa hashmap 函數 三方庫 col msg arraylist 字符串 comm 前面 寫了一次 kotlin解析json 但是,真的寫得太爛,直接刪掉了,現在重新整理一下。順便記錄一下今天坑了我很久的小問題。 1.首先從最簡單的入手吧