Java 如何在Android中从字符串中读取某些值

Java 如何在Android中从字符串中读取某些值,java,android,arrays,string,Java,Android,Arrays,String,我正在开发一个android应用程序,其中我正在将在线数据库中的结果读取到以下表单的字符串中: {"success":1,"innerResult":[{"username":"raafat","password":"123"}]} 我需要能够读取用户名和密码值,即使我有多个结果。例如,我需要返回一个用户名数组和另一个密码数组 我尝试拆分字符串,但当您有许多条目时,会感到困惑。使用Gson 步骤1:创建响应数据的bean。在您的情况下,您需要用户名和密码的详细信息 步骤2:解析JSON响应并使

我正在开发一个android应用程序,其中我正在将在线数据库中的结果读取到以下表单的字符串中:

{"success":1,"innerResult":[{"username":"raafat","password":"123"}]}
我需要能够读取用户名和密码值,即使我有多个结果。例如,我需要返回一个用户名数组和另一个密码数组

我尝试拆分字符串,但当您有许多条目时,会感到困惑。

使用Gson

步骤1:创建响应数据的bean。在您的情况下,您需要用户名和密码的详细信息

步骤2:解析JSON响应并使用Gson将其转换为所需的bean

String response = "{\"success\":1,\"innerResult\":[{\"username\":\"raafat\",\"password\":\"123\"}]}";
JSONObject jsonObject = new JSONObject(response);

if(jsonObject.has("innerResult")){
   Type type = new TypeToken<List<User>>() {}.getType();
   List<User> listUsers = new Gson().fromJson(jsonObject.getJSONArray("innerResult").toString(), type);
}

您的字符串是Json格式的,您可以尝试以下操作:

try{
    JSONObject yourObject = new JSONObject(yourString);
    int resultCode = yourObject.getInt("success");
    JSONArray innerResult = yourObject.getJSONArray("innerResult");
    //you'll need to iterate through your array then
    List<String> userNames = new ArrayList<>();
    List<String> passwords = new ArrayList<>();
    for(int i =0 ; i < innerResult.length() ; i++){
        JSONObject user = innerResult.getJSONObject(i);
        userNames.add(user.getString("username"));
        passwords.add(user.getString("password"));
    }
}catch(JSONException e){
   e.printStackTrace();
}

或者你可以使用像GSon这样的库

你为什么不使用JSON解析器…它是一个JSON字符串…使用JSON解析器来解析字符串这就是你要找的:我仍然不明白为什么你要给这个蒙克斯提供代码我仍然不明白为什么我是唯一一个被批评的人理解你是复数。在西班牙语中我们说vosotros。我不可能不触及周围管理人员的感受就重复评论。对不起,非常感谢你,巴斯蒂安。也许我的问题很琐碎,但我对java完全陌生,你帮了我很多。没问题!很乐意帮忙
try{
    JSONObject yourObject = new JSONObject(yourString);
    int resultCode = yourObject.getInt("success");
    JSONArray innerResult = yourObject.getJSONArray("innerResult");
    //you'll need to iterate through your array then
    List<String> userNames = new ArrayList<>();
    List<String> passwords = new ArrayList<>();
    for(int i =0 ; i < innerResult.length() ; i++){
        JSONObject user = innerResult.getJSONObject(i);
        userNames.add(user.getString("username"));
        passwords.add(user.getString("password"));
    }
}catch(JSONException e){
   e.printStackTrace();
}