Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何仅从json获取特定值?_Android_Mysql_Json - Fatal编程技术网

Android 如何仅从json获取特定值?

Android 如何仅从json获取特定值?,android,mysql,json,Android,Mysql,Json,我只是需要json数据方面的帮助,实际上我的mysql表包含许多字段,我知道如何将整个数据转换为json格式,并将其解析为android应用程序,但我只想根据id=1、name=some等条件获取特定行的数据,而这正是我迄今为止尝试的,但没有成功 public class Result_1 extends AppCompatActivity { TextView winning,rank,accuracy,team1_judge_score,team1_actual_score,te

我只是需要json数据方面的帮助,实际上我的mysql表包含许多字段,我知道如何将整个数据转换为json格式,并将其解析为android应用程序,但我只想根据id=1、name=some等条件获取特定行的数据,而这正是我迄今为止尝试的,但没有成功

     public class Result_1 extends AppCompatActivity {

TextView winning,rank,accuracy,team1_judge_score,team1_actual_score,team1_score_accuracy,
        team1_judge_fifty,team1_actual_fifty,team1_fifty_accuracy,
        team1_judge_wicket,team1_actual_wicket,team1_wicket_accuracy,
        team2_judge_score,team2_actual_score,team2_score_accuracy,
        team2_judge_fifty,team2_actual_fifty,team2_fifty_accuracy,
        team2_judge_wicket,team2_actual_wicket,team2_wicket_accuracy;


private ProgressDialog loading;
String mail;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result1);
    getResults();


     rank=(TextView)findViewById(R.id.rank);
     accuracy=(TextView)findViewById(R.id.Accuracy);
     //Winning=(TextView)findViewById(R.id.money);
     team1_judge_score=(TextView)findViewById(R.id.textView22);
     team1_actual_score=(TextView)findViewById(R.id.textView23);
     team1_score_accuracy=(TextView)findViewById(R.id.textView24);
     team1_judge_fifty=(TextView)findViewById(R.id.textView32);
     team1_actual_fifty=(TextView)findViewById(R.id.textView33);
     team1_fifty_accuracy=(TextView)findViewById(R.id.textView34);
     team1_judge_wicket=(TextView)findViewById(R.id.textView42);
     team1_actual_wicket=(TextView)findViewById(R.id.textView43);
     team1_wicket_accuracy=(TextView)findViewById(R.id.textView44);
     team2_judge_score=(TextView)findViewById(R.id.textView22_2);
     team2_actual_score=(TextView)findViewById(R.id.textView23_2);
     team2_score_accuracy=(TextView)findViewById(R.id.textView24_2);
     team2_judge_fifty=(TextView)findViewById(R.id.textView32_2);
     team2_actual_fifty=(TextView)findViewById(R.id.textView33_2);
     team2_fifty_accuracy=(TextView)findViewById(R.id.textView34_2);
     team2_judge_wicket=(TextView)findViewById(R.id.textView41_2);
     team2_actual_wicket=(TextView)findViewById(R.id.textView42_2);
     team2_wicket_accuracy=(TextView)findViewById(R.id.textView43_2);









}

User user = SharedPrefManager.getInstance(Result_1.this).getUser();
String userEmail= user.getEmail();


private void getResults() {

    loading = ProgressDialog.show(this,"","",false,false);
    String url = Config.Result.toString().trim();


    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            loading.dismiss();
            showJSON(response);
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    loading.dismiss();
                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);


}

private void showJSON(String response){
    String Winning="";
    String Rank="";
    String Accuracy="";

    String Team1_Judgement_score="";
    String Team1_Actual_score="";
    String Team1_ScoreAccuracy="";

    String Team1_Judgement_fifty="";
    String Team1_Actual_fifty="";
    String Team1_FiftyAccuracy="";

    String Team1_Judgement_wickets="";
    String Team1_Actual_wickets="";
    String Team1_WicketsAccuracy="";

    String Team2_Judgement_score="";
    String Team2_Actual_score="";
    String Team2_ScoreAccuracy="";

    String Team2_Judgement_fifty="";
    String Team2_Actual_fifty="";
    String Team2_FiftyAccuracy="";

    String Team2_Judgement_wickets="";
    String Team2_Actual_wickets="";
    String Team2_WicketsAccuracy="";



    try {
        JSONObject jobj = new JSONObject(response);
        JSONArray result = jobj.getJSONArray(Config.JSON_ARRAY_Result);

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


                String gmail = result.getJSONObject(i).getString(Config.email);

                if (userEmail.equals(gmail))  // compare user email here
                {

                    Rank = jobj.getString(Config.rank);
                    Accuracy = jobj.getString(Config.accuracy);

                    Team1_Judgement_score = jobj.getString(Config.score1_judge);
                    Team1_Actual_score = jobj.getString(Config.score1_actual);
                    Team1_ScoreAccuracy = jobj.getString(Config.score1_accu);

                    Team1_Judgement_fifty = jobj.getString(Config.fifty1_judge);
                    Team1_Actual_fifty = jobj.getString(Config.fifty1_actual);
                    Team1_FiftyAccuracy = jobj.getString(Config.fifty1_accu);

                    Team1_Judgement_wickets = jobj.getString(Config.wicket1_judge);
                    Team1_Actual_wickets = jobj.getString(Config.wicket1_actual);
                    Team1_WicketsAccuracy = jobj.getString(Config.wicket1_accu);

                    Team2_Judgement_score = jobj.getString(Config.score2_judge);
                    Team2_Actual_score = jobj.getString(Config.score2_actual);
                    Team2_ScoreAccuracy = jobj.getString(Config.score2_accu);

                    Team2_Judgement_fifty = jobj.getString(Config.fifty2_judge);
                    Team2_Actual_fifty = jobj.getString(Config.fifty2_actual);
                    Team2_FiftyAccuracy = jobj.getString(Config.fifty2_accu);

                    Team2_Judgement_wickets = jobj.getString(Config.wicket2_judge);
                    Team2_Actual_wickets = jobj.getString(Config.wicket2_actual);
                    Team2_WicketsAccuracy = jobj.getString(Config.wicket2_accu);

                }



        }

            rank.setText(Rank);
            accuracy.setText(Accuracy);
            team1_judge_score.setText(Team1_Judgement_score);
            team1_actual_score.setText(Team1_Actual_score);
            team1_score_accuracy.setText(Team1_ScoreAccuracy);
            team1_judge_fifty.setText(Team1_Judgement_fifty);
            team1_actual_fifty.setText(Team1_Actual_fifty);
            team1_fifty_accuracy.setText(Team1_FiftyAccuracy);
            team1_judge_wicket.setText(Team1_Judgement_wickets);
            team1_actual_wicket.setText(Team1_Actual_wickets);
            team1_wicket_accuracy.setText(Team1_WicketsAccuracy);

            team2_judge_score.setText(Team2_Judgement_score);
            team2_actual_score.setText(Team2_Actual_score);
            team2_score_accuracy.setText(Team2_ScoreAccuracy);
            team2_judge_fifty.setText(Team2_Judgement_fifty);
            team2_actual_fifty.setText(Team2_Actual_fifty);
            team2_fifty_accuracy.setText(Team2_FiftyAccuracy);
            team2_judge_wicket.setText(Team2_Judgement_wickets);
            team2_actual_wicket.setText(Team2_Actual_wickets);
            team2_wicket_accuracy.setText(Team2_WicketsAccuracy);





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

}



   }
我的json是这样的

     {"list":[{"email":"vips@gmail.com","name":"Vipul 
       S","rank":"1","accuracy":"80"},
     {"email":"karan@gmail.com","name":"karan 
       S","rank":"3","accuracy":"30"},
      {"email":"vikas@gmail.com","name":"Vikas 
       S","rank":"2","accuracy":"83"}]}
我的xml文件有点大,所以我没有在这里发布它,但我已经检查了id,一切正常。
问题是我正在获取所有数据,但我只想根据电子邮件一次发布一行数据,但现在TextView没有发布数据。

我这样做,一切都保持不变,只需更改即可

            JSONObject jobj = new JSONObject(response);
    JSONArray result = jobj.getJSONArray(Config.JSON_ARRAY_Result);

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


            String gmail = result.getJSONObject(i).getString(Config.email); 

这是我在函数getResults的try块中缺少的一行,因为没有传递任何引用JSONObject Data=result.getJSONObjecti


所以用这个来帮助你自己…谢谢你为什么要减掉它,因为我认为这个问题没有任何问题,是吗
            JSONObject jobj = new JSONObject(response);
    JSONArray result = jobj.getJSONArray(Config.JSON_ARRAY_Result);

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


            String gmail = result.getJSONObject(i).getString(Config.email); 
              JSONObject jobj = new JSONObject(response);
             JSONArray result = jobj.getJSONArray(Config.JSON_ARRAY_Result);

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

                JSONObject Data = result.getJSONObject(i);
                String gmail = 
            result.getJSONObject(i).getString(Config.email);