Android 代码未从json检索数据
我在这个代码中哪里出错了?按下按钮后,数据不显示。我引用了这篇文章 我是否遗漏了任何导致它无法工作的代码?这将是一个很大的帮助,指出我哪里出了错,并解释它。提前谢谢Android 代码未从json检索数据,android,Android,我在这个代码中哪里出错了?按下按钮后,数据不显示。我引用了这篇文章 我是否遗漏了任何导致它无法工作的代码?这将是一个很大的帮助,指出我哪里出了错,并解释它。提前谢谢 public class MainActivity extends AppCompatActivity { private TextView mTextViewResult; private RequestQueue mQueue; @Override protected void onCreate
public class MainActivity extends AppCompatActivity {
private TextView mTextViewResult;
private RequestQueue mQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextViewResult = findViewById(R.id.text_view_result);
Button buttonParse = findViewById(R.id.button_parse);
mQueue = Volley.newRequestQueue(this);
buttonParse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
jsonParse();
}
});
}
private void jsonParse() {
String url = "https://cdn.sportmonks.com/soccer/json/champions-league-20172018-standings.json";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject data = jsonArray.getJSONObject(i);
String GroupName = data.getString("name");
int position = data.getInt("position");
String TeamName = data.getString("team_name");
mTextViewResult.append(GroupName + ", " + String.valueOf(position) + ", " + TeamName + "\n\n");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);
}
}
public类MainActivity扩展了AppCompatActivity{
私有文本视图mTextViewResult;
专用请求队列MQUE;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextViewResult=findviewbyd(R.id.text\u view\u result);
Button Button parse=findViewById(R.id.Button\u parse);
mQueue=Volley.newRequestQueue(this);
ButtonPasse.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
jsonParse();
}
});
}
私有void jsonParse(){
字符串url=”https://cdn.sportmonks.com/soccer/json/champions-league-20172018-standings.json";
JsonObjectRequest=新的JsonObjectRequest(request.Method.GET,url,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
JSONArray JSONArray=response.getJSONArray(“数据”);
for(int i=0;i
尝试使用以下命令解析JSON响应:
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject data = jsonArray.getJSONObject(i);
String groupName = data.getString("name");
JSONObject standingsObject = data.getJSONObject("standings");
JSONArray standingsDataArray = standingsObject.getJSONArray("data");
for (int j = 0; j < standingsDataArray.length(); j++) {
JSONObject dataGroup = standingsDataArray.getJSONObject(j);
int position = dataGroup.getInt("position");
String teamName = dataGroup.getString("team_name");
mTextViewResult.append(groupName + ", " + String.valueOf(position) + ", " + teamName + "\n\n");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public void onResponse(JSONObject-response){
试一试{
JSONArray JSONArray=response.getJSONArray(“数据”);
for(int i=0;i
这应该是可行的。int position=data.getInt(“position”);数据对象中没有位置。这是什么意思?就像在JSON URL中一样?如果您指的是这个,那么有。我们收到的响应不包含position对象。仍然不起作用。我想我应该在对上面编辑的代码稍作调整后替换onResponse方法……我已经尝试过了!我最初在第二个
for
循环中出现了一个复制/粘贴错误——我应该使用standingsDataArray
而不是jsonArray
。还要注意,您需要从第一个循环中获取groupName
。