簡體   English   中英

如何在Android中解析簡單的JSON數組?

[英]How to parse simple JSON Array in android?

我一直想知道如何在android中解析JSON Array?

我有一個像這樣的json對象: [{"ID":"1","email":"email@mail.mail","password":"password"},{"ID":"2","email":"test@test.com","password":"passward"}]

但我找不到如何解析的方法,我想訪問數據,以便可以擁有第一封郵件或第二個ID。

我已經嘗試了40種不同的解決方案,但是沒有運氣。

上次我嘗試嘗試的東西是這樣的:

private void showJSON(String json){
        try {
            JSONArray jArray = new JSONArray(json);
            String JsonString = jArray["ID"];
            tv.append(JsonString);

        } catch (JSONException e) {e.printStackTrace();}
    }

但是它需要一個數組而不是一個json數組。 我仍然沒有找到如何將其轉換為數組。

我也嘗試過這個:

for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonobject = jsonarray.getJSONObject(i);
    String name = jsonobject.getString("email");
}

但是getJSONObject不存在。

謝謝您的幫助。

使用gson將數組反序列化為一個對象。 https://sites.google.com/site/gson/gson-user-guide

嘗試這個

private void showJSON(String json){
    try{
    JSONArray jsonArray = new JSONArray(json);
     for (int i = 0; i < jsonArray.length(); i++) {

       String id[i] = jsonArray.getJSONObject(i).getString("id");
       String email[i] = jsonArray.getJSONObject(i).getString("email");
     }
     }
    catch (JSONException e) {
                // Log.d("JSONException", e.toString());
            }
     }

使用Gson時很簡單:首先,創建類User:

public class User
{
private String ID;
private String email;
private String password;
}

然后創建UserStringJson類:

public class UserStringJson{
ArrayList<User> userArrays = new ArrayList<User>();
}

最后,使用gson:

Gson gson = new Gson();
UserStringJson userStringJson = new UserStringJson();
userStringJson = gson.fromJson(jsonstring,
                    UserStringJson.class);
String email = userStringJson.getuserArrays().get(0).getEmail();

創建自定義對象User

public class User {
    public String ID;
    public String email;
    public String password;
}

使用此類到showJson()方法中:

private void showJSON(String json) {
    try {
        List<User> userList = new ArrayList<>();

        JSONArray jsonArray = new JSONArray(json);
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            User user = new User();
            user.ID = jsonObject.getString("id");
            user.email = jsonObject.getString("email");                 user.password = jsonObject.getString("password");
            userList.add(user);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

做這樣的事情:

JSONArray arr= new JSONArray("json string");
for(int i=0;i<arr.length();i++){
JSONObject obj= arr.getJSONObject(i);
// Now use this obj to get desired values.
int ID= Integer.parseInt(obj.getString("ID"))// or use getInt method
// Similarly you can do for the rest.

}

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM