導航:首頁 > 操作系統 > android開發json

android開發json

發布時間:2022-12-25 21:57:22

android開發中怎樣使用Json

android3.0以後有json解析包JsonReader。
還是建議用gson.jar。

㈡ Android開發中應該使用哪一種主流json框架

Gson、FastJson、Jackson每種都有自己的優劣勢。
Gson、FastJson、Jackson綜合對比

三種框架在實現上都使用了反射機制;

三種框架目前仍然在維護,所以從這一點來講,使用任何一個框架都是靠譜的,因為有人在維護,反饋問題可以改,遇到問題也可以問;

三種框架FastJson的包最小(為了方便對比大小,均是對jar包做的統計),只有196K,其次是Gson的227K,Jackson會大很多,超過了1M;

三種框架在1000倍數據量級以內效率都很高、佔用內存也低,效率最高的是FastJson,內存佔用都差不多;1000倍數據量級以上內存佔用會很大,並且平均耗時會超過1S,FastJson表現中規中矩;

json解析、轉換是一件很耗CPU的工作;

三種框架在bean轉換為json時都有很好的易用性,但在json解析的實現上,FastJson使用起來最簡單,其次是Gson;

FastJson對bean有要求,必須要有默認的構造函數,如果bean類沒有默認的構造函數並且是無法修改的(比如拿不到源碼),相比於另外兩個框架會有弱勢。

㈢ Android開發中為什麼很少使用JSON存儲數據

是可以用JSON存儲數據對象的,而且也是Google推薦的,可以取代以實現Serializable來存儲對象的方法。下面是使用JSON存儲數據的原因。

Android開發中,涉及到對象存儲,通常的做法是直接實現`Serializable`。有關這個介面,它保證了實現該介面的類的對象能夠被`ObjectOutput/InputStream`直接輸入輸出,即序列化。這很方便,但是也很不好。

提到『序列化』,大多數人都想到`Serializable`,而實際上『序列化』的只是指「將對象的狀態信息轉換為可以存儲或傳輸的形式的過程」,java的`Serializabe`是位元組序列化的一種。

`Serialziable`的缺點之一是,實現了該介面的類將失去靈活性。這一點《Effective Java》第74條也指出了,實現了這個`Serializable`的類將會依賴這個類的內部演化,根源在於UID(Serial version UID)。如果你沒有指定UID,那麼每次這個類被序列化時都會根據這個類的當前狀態生成一個UID。想像這么一種場景:這個類已經被導出了,比如發給其他公司或部門使用了,然後你又修改了這個類,那麼當你再將這個類發布時,由於UID不同,其他公司或部門的程序員將可能得到一個「InvalidClassException」。

這種情況的根本原因是因為你不能控制序列化的實現,你控制不了UID的生成過程。這就需要一個自定義的序列化形式。在Android中,Google推薦JSON序列化。而且Android程序員也可以使用Gson等工具來進行序列化和反序列化。

和`Serializable`的位元組序列化不同,JSON序列化是字元序列化。

此外,`Serializable`只適合存儲對象。由於在傳輸時`Serializalbe`要做大量IO,Android提供了`Parcelable`。

最後,題主不應該把資料庫和JSON,XML比較,如果要比,也只能把資料庫和文件存儲比。資料庫適合存儲數量大,關系復雜的數據,這樣管理,查閱就很方便。與此相對文件存儲適合數量小,關系簡單的數據。

㈣ JSON的讀取和存放,Android開發!

  1. 用HTTPConnection(或HTTPClient)通過Path(或URL)獲取json.以Stream保存在String中.

  2. 使用JSONObject通過String構造JSONObject對象.

  3. 在JSONObject中可以以(KEY,VALUES)方式獲取值,JSONObject可以生成JSONArray,JSONArray也可解析出JSONObject.

  4. 最後,靈活運用.

㈤ Android開發 解析JSON數據格式 如何去掉JSON數

Android開發中如何解析JSON數據格式?

1.JSON解析
(1).解析Object之一:

1 {"url":"http://www。ideaex。net"}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 String url = demoJson.getString("url");

(2).解析Object之二:

1 {"name":"android","name":"iphone"}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 String name = demoJson.getString("name");

3 String version = demoJson.getString("version");

4 System.out.println("name:"+name+",version:"+version);

(3).解析Array之一:

1 {"number":[1,2,3]}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 JSONArray numberList = demoJson.getJSONArray("number");

3 for(int i=0; i<numberList.length(); i++){

4 //因為數組中的類型為int,所以為getInt,其他getString,getLong同用

5 System.out.println(numberList.getInt(i));

6 }

(4).解析Array之二:

1 {"number":[[1],[2],[3]]}

解析方法:

1 //嵌套數組遍歷

2 JSONObject demoJson = new JSONObject(jsonString);

3 JSONArray numberList = demoJson.getJSONArray("number");

4 for(int i=0; i<numberList.length(); i++){

5 //獲取數組中的數組

6 System.out.println(numberList.getJSONArray(i).getInt(0));

7 }

(5).解析Object和Array:

1 {"mobile":[{"name":"android"},{"name":"iphone"}]}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 JSONArray numberList = demoJson.getJSONArray("mobile");

3 for(int i=0; i<numberList.length(); i++){

4 System.out.println(numberList.getJSONObject(i).getString("name"));

5 }

所以,我們發現get後面接著的是你想要的得到的結果的類型:getType,這個對理解很有幫助。
(6).使用optType:
上面的例子,使用getType在碰到查找不到節點的時候,會拋出異常。
如果使用optType,找不到節點,則返回null或者默認值。

1 //無url節點,拋出異常

2 String url = demoJson.getString("url");

3 //無url節點,返回空,如果為基本類型,則返回默認值

4 String url = demoJson.optString("url");

(7).UTF-8的BOM頭導致解析JSON異常的問題
到json文件保存為utf-8的時候,在windows平台下,會產生bom頭"EF BB EF"位元組在文本的最前面(需要用十六進制工具打開才能看的到)。
有兩種解決方法:
a.使用UltraEdit打開json文件,另存為的時候,選擇格式UTF-8,無BOM頭,如果還不行,在用記事本打開,另存為UTF-8下,多試幾次就可以了。
b.使用代碼處理,截取json主體內容:

1 String jsonString = getJsonString();

2 jsonString = jsonString.substring(jsonString.indexOf("{"),jsonString.lastIndexOf("}")+1);

2.JSON必知
(1).JSON是一種輕量級的數據交換格式
(2).JSON基於兩種數據結構:Object和Array。其中Object是「名稱/值」對的集合。
(3).對象:大括弧,每一組string-value結合以","分隔,string和value以冒號分隔。

(4).數組:

(5).string由雙引號包圍的任意數量Unicode字元的集合,使用反斜線轉義。

(6).value可以是雙引號括起來的字元串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。

(7).空白可以加入到任何符號之間,包括空格,tab,回車,換行等。
(8).舉例:
a.Object實例:

01 {

02 "Image": {

03 "Width": 800,

04 "Height": 600,

05 "Title": "View from 15th Floor",

06 "Thumbnail": {

07 "Url": "http://www.example.com/image/481989943",

08 "Height": 125,

09 "Width": "100"

10 },

11 "IDs": [116, 943, 234, 38793]

12 }

13 }

b.Array實例:

01 [

02 {

03 "precision": "zip",

04 "Latitude": 37.7668,

05 "Longitude": -122.3959,

06 "Address": "",

07 "City": "SAN FRANCISCO",

08 "State": "CA",

09 "Zip": "94107",

10 "Country": "US"

11 },

12 {

13 "precision": "zip",

14 "Latitude": 37.371991,

15 "Longitude": -122.026020,

16 "Address": "",

17 "City": "SUNNYVALE",

18 "State": "CA",

19 "Zip": "94085",

20 "Country": "US"

21 }

22 ]

㈥ Android 如何引用本地json文件

有時候遇到要一些模擬數據的時候,要麼寫個List<T>,要麼寫死.

然後數據比較多的時候可以引用本地資源文件,記錄下如何使用本地json文件

<1>在java同級目錄下創建"assets"資源文件夾

<2>編輯json文本內容
至於json文件夾內容 就自定義了,想要什麼內容寫什麼,對於一個做項目多了的開發者而言 json數據是熟悉到不能再熟悉的了
以下是我在淘寶一個個復制過來自己拼裝的一些商品數據

不需要加任何標識,只需要標準的json數據格式就可以了

<3>引用和json解析的工具類,解析用的 Gson也是經常用到的

<4>最後在需要的地方引用,"ExchangeBean"是根據json內容寫的一個模型,用於接收存放數據

有時間再補上demo,下面是效果圖:

㈦ Android開發中應該使用哪一種主流json框架

Android開發中應該使用的主流json框架有三種,分別是gson、fastjson、jackson這三種。
各自的區別:
gson:谷歌開發的gson很受國內外人士常使用,不過使用率低於fastjson,耗費內存多。
fastjson:框架的fastjson是最小的,屬於老牌並且國內開發者經常使用,fastjson必須有默認的構造函數。
jackson:jackson屬於小眾開發者使用的,jackson的框架包是最大的。

㈧ 在Android開發環境中,麻煩幫我解析一下這段JSON數據,謝謝!

寫在Android的Activity中的代碼:

importandroid.app.Activity;
importandroid.os.Bundle;
importjava.util.Iterator;
importorg.json.JSONObject;

{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

try{
Stringdata="{"DbNo":"db001","code":0,"fileBackup":"http://192.168.4.178:8888/","filePrior":"http://192.168.4.178:8888/","fileServerIp":"192.168.4.178","fileServerIpBackUp":"192.168.4.178","fileServerPort":"8888","fileServerPortBackUp":"8888","msg":"","msgserverIpBackUp":"192.168.4.178","msgserverPortBackUp":"8100","port":"65531","priorIP":"192.168.4.178","userPass":"|2128"}";
JSONObjectobj=newJSONObject(data);
Iterator<?>it=obj.keys();
Stringkey;
while(it.hasNext()){
key=it.next().toString();
System.out.println(key+":"+obj.getString(key));
}
}
catch(Exceptione){
System.out.println(e.toString());
}
}
}


測試後,在Logcat中的輸出:

閱讀全文

與android開發json相關的資料

熱點內容
排課走班源碼 瀏覽:222
程序員剛畢業去了小公司有發展嗎 瀏覽:90
速騰怎麼安裝安卓手機互聯 瀏覽:143
linux設備驅動程序代碼 瀏覽:301
伺服器的功耗怎麼看 瀏覽:651
app組件哪裡找 瀏覽:87
androidqq紅包 瀏覽:412
伺服器如何傳輸 瀏覽:456
如何快速將多個文件夾快速解壓縮 瀏覽:114
程序員睡前都在想什麼 瀏覽:37
少兒編程技能培訓心得 瀏覽:458
白命令 瀏覽:816
headfirstjavapdf 瀏覽:552
廣數980t怎麼編程 瀏覽:592
無邪app在哪裡下載 瀏覽:462
mac自帶php目錄 瀏覽:632
海淘小程序源碼 瀏覽:750
哪裡下載蘇寧秒達app 瀏覽:643
androidcmnet 瀏覽:31
易語言標題源碼 瀏覽:948