Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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 - Fatal编程技术网

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