[英]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.