有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从URL获取数组中的数据

我试图从JSON URL获取数据。当然是任务。但问题是JSON文件没有对象。这是一个数组。 JSON URLapi website

有人能告诉我如何为这个JSON文件创建JSONArray和JSONObject吗

以下是我所做的让应用停止工作的事情

//URL to get JSON Array
private static String url = "http://api.worldbank.org/countries/ir?format=json";

//JSON Node Names 
private static final String TAG_OBJ = "user";
private static final String NAME = "name";
private static final String CAPITALCITY = "capitalCity";
    .
    .
    .
    class GetJSONTask extends AsyncTask<String, Void, JSONObject> {


    protected JSONObject doInBackground(String... urls) {
        // Creating new JSON Parser
        JSONParser jParser = new JSONParser();

        // Getting JSON from URL
        JSONObject json = JSONParser.getJson(url);

        return json;
    }
    protected void onPostExecute(JSONObject json) {
        //Getting JSON Array
        try {
            user = json.getJSONArray(TAG_OBJ);
            JSONObject c = user.getJSONObject(0);

            //Stroing JSON item in a Variable
            String name = c.getString(NAME);
            String capitalCity = c.getString(CAPITALCITY);

            //Importing TextView
            final TextView view1 = (TextView)findViewById(R.id.name);
            final TextView view2 = (TextView)findViewById(R.id.capitalCity);

            //Set JSON Data in TextView
            view1.setText(name);
            view2.setText(capitalCity);

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

共 (2) 个答案

  1. # 1 楼答案

    使用JSON数组。这是我的密码:-

    String url = "http://api.androidhive.info/contacts/";
        JSONParser jParser = new JSONParser();
    
        // Getting JSON from URL
        JSONObject json = jParser.getJSONFromUrl(url);
        try {
            // Getting JSON Array
            JSONArray begin = json.getJSONArray("contacts");
            JSONObject c = begin.getJSONObject(0);
    
            // Storing  JSON item in a Variable
            String id = c.getString("id");
            String name = c.getString("name");
            String size = c.getString("email");
    

    把这个放进你的异步

  2. # 2 楼答案

    if(i<jArray.length()) {
             JSONObject json_obj = jArray.getJSONObject(i);   //get array object
             name = json_obj.getString("your tag name");        fetch item here
        }