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