當前位置:首頁 » 安卓系統 » android中的json解析

android中的json解析

發布時間: 2023-01-06 00:10:37

『壹』 Android Json解析

用JSONObject 這個開源庫,或者用android的 Gson開源庫

JSONObject jsonObj = new JSONObject(json字元串);

JSONArray array = jsonObj.getJSONArray("result");



『貳』 android json解析三種方式哪種效率最高

用org.json以及谷歌提供gson來解析json數據的方式更好一些。

安卓下通常採用以下幾種方式解析json數據:
1、org.json包(已經集成到android.jar中了)
2、google提供的gson庫
3、阿里巴巴的fastjson庫
4、json-lib

以Google出品的Gson為例,具體步驟為:
1、首先,從 code.google.com/p/google-gson/downloads/list下載GsonAPI:
google-gson-1.7.1-release.zip 把gson-1.7.jar 到libs(項目根目錄新建一個libs文件夾)中。 可以使用以下兩種方法解析JSON數據,通過獲取JsonReader對象解析JSON數據。
代碼如下:
String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
try{
JsonReader reader = new JsonReader(new StringReader(jsonData));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equals("username")){
System.out.println(reader.nextString());
}
else if(tagName.equals("userId")){
System.out.println(reader.nextString());
}
}
reader.endObject();
}
reader.endArray();
}
catch(Exception e){
e.printStackTrace();
}
2、使用Gson對象獲取User對象數據進行相應的操作:
代碼如下:

Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println(user.getUsername());
System.out.println(user.getUserId());
}
3、如果要處理的JSON字元串只包含一個JSON對象,則可以直接使用fromJson獲取一個User對象:
代碼如下:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println(user.getUsername());
System.out.println(user.getUserId());

『叄』 Android json解析

關於json解析有很多第三方的jar包可以使用,如gson,也可以使用android自帶的工具類org.json包下,這里你可以使用JSONTokener(json解析類 ),例:

// {
// "phone" : ["12345678", "87654321"], // 數組
// "name" : "yuanfei89", // 字元串
// "age" : 100, // 數值
// "address" : { "country" : "china", "province" : "jiangsu" }, // 對象
// "married" : false // 布爾值
// }

private static final String JSON =
"{" +
" \"phone\" : [\"12345678\", \"87654321\"]," +
" \"name\" : \"yuanfei89\"," +
" \"age\" : 100," +
" \"address\" : { \"country\" : \"china\", \"province\" : \"jiangsu\" }," +
" \"married\" : false," +
"}";

try {
JSONTokener jsonParser = new JSONTokener(JSON);
// 此時還未讀取任何json文本,直接讀取就是一個JSONObject對象。
// 如果此時的讀取位置在"name" : 了,那麼nextValue就是"yuanfei89"(String)
JSONObject person = (JSONObject) jsonParser.nextValue();
// 接下來的就是JSON對象的操作了
person.getJSONArray("phone");
person.getString("name");
person.getInt("age");
person.getJSONObject("address");
person.getBoolean("married");
} catch (JSONException ex) {
// 異常處理代碼
}

可參考:http://www.open-open.com/lib/view/open1326376799874.html

『肆』 android 手機怎樣解析json數據

可以用一些開源的java庫,就可以把這些json數據直接變為Java對象及數組了,然後用Java處理起來很方便。
常用的處理json的庫有gson和json-lib,你網路一下可以下到,網上也有例子

『伍』 android JSON文件解析! 求指點。

JSONObjectjsonObj;
jsonObj=newJSONObject(str);//str為返回的json
//解析老師
JSONArrayresult=jsonObj.getJSONArray("老師");
ArrayList<Person>list_laoshi=newArrayList<Person>();
for(inti=0;i<result.length();i++){
JSONObjectjb=(JSONObject)result.opt(i);
Personlaoshi=newPerson();
laoshi.setId(jb.getString("id"));
laoshi.setName(jb.getString("name"));
laoshi.setType(jb.getString("type"));
list_laoshi.add(laoshi);
}
上面代碼是把json文件中的老師解析成person對象加入集合,解析家人和同學方法一樣,望採納!

『陸』 android 用JSON 解析數據介面方法

介面獲取下來的數據為

{"status":200,"message":"查詢成功","data":{"id":32,"user_id":null,"user_code":null,"user_pass":null,"meeting_id":"1","meeting_pass":null,"config_param_ip":"11.1.1.70","port":"6501","web_config_param_ip":"11.1.1.70","web_port":"6501","unit_code":null,"create_time":null,"update_time":null,"status":0,"userCode":"video1","userPass":"video1","meetingId":"1","meetingPass":"","apiPort":"13000","username":"admin","password":"123456","updateTime":"2021-11-08 17:45:29"}}

使用方法

try {

    JSONObject jsonObject = new JSONObject(outstring);

    int resultCode = jsonObject.getInt("status");

    if (resultCode == 200) {

        JSONObject obj = jsonObject.getJSONObject("data");

        IP = obj.getString("config_param_ip");

        port = obj.getString("web_port");

        username = obj.getString("userCode");

        password = obj.getString("userPass");

        roomID = Integer.parseInt(obj.getString("meetingId"));

        roomPassword = obj.getString("password");

    } else {

        ToastUtils.showShort("查詢失敗");

    }

    goVideo();

} catch (Exception e) {

    e.printStackTrace();

}

『柒』 android json解析成map格式

先看json數據
之前使用的是gson解析,把 discount 寫成Object格式,但是通過解析之後轉成String類型,成為

這種明顯沒有辦法解析成map集合
使用原始的Json解析,一層一層的找到這個對象,轉成String類型成為

這種情況下就可以了 之後是的解析方法
第一種方法是

第二種是

這樣就可以獲取到map集合了

『捌』 android中解析json數據的org.json包中最重要

android中解析json數據的org.json包中最重要的是jsonarray。
jsonarray主要是解析json數據,因此四最重要的。
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦。

『玖』 android怎麼解析json

你好,我試過了,這樣能取到你要的結果:
用的gson-2.2.4.jar包,你應該有吧,沒有網路搜下去下個就好了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class MyTest {
public static void main(String[] args) {
String json = "{'resultcode':'200','reason':'ReturnSuccessd!','result':{'data':[{'MCC':'460','MNC':'1','LNG':'120.721423','LAT':'31.29854','O_LNG':'120.72577772352','O_LAT':'31.296529947917','PRECISION':'1101','ADDRESS':'江蘇省蘇州市吳中區金雞湖大道368號'}]}}";
JsonParser jsonParser = new JsonParser();
JsonObject jsonObj = jsonParser.parse(json).getAsJsonObject();
JsonObject result = jsonObj.get("result").getAsJsonObject();
JsonArray data = result.get("data").getAsJsonArray();
String O_LNG = data.get(0).getAsJsonObject().get("O_LNG").getAsString();
String O_LAT = data.get(0).getAsJsonObject().get("O_LAT").getAsString();
String ADDRESS = data.get(0).getAsJsonObject().get("ADDRESS").getAsString();
System.out.println(O_LNG);
System.out.println(O_LAT);
System.out.println(ADDRESS);
}
}

熱點內容
逆戰腳本掛機 發布:2025-05-16 22:30:01 瀏覽:935
java隨機產生數 發布:2025-05-16 22:25:52 瀏覽:255
java任務管理 發布:2025-05-16 22:17:02 瀏覽:571
安卓如何修改cpu 發布:2025-05-16 21:58:20 瀏覽:364
pythonainb 發布:2025-05-16 21:45:56 瀏覽:855
淘汰伺服器可以做家用電腦嗎 發布:2025-05-16 21:41:31 瀏覽:842
遊程編碼c語言 發布:2025-05-16 21:26:51 瀏覽:587
帝來哪個配置值得購買 發布:2025-05-16 21:12:29 瀏覽:463
什麼是nodejs前端伺服器 發布:2025-05-16 21:12:17 瀏覽:405
編譯選項立即綁定未定義符號 發布:2025-05-16 20:55:13 瀏覽:907