آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خواندن یک آرایه در json از داخل آرایه دیگر

محمد  10 سال پیش  10 سال پیش
0 0

دوستان سلام
سایت ... یه API Json داره که من میخواستم برای اینکه json رو یاد بگیرم و توی یه پروژم استفاده کنم دارم روش کار میکنم.

حالا یه مشکلی دارم...

الان شما json رو ببینید: http://api.khabarfarsi.net/api/news/latest/1?tid=*&output=json

توی این json یه آرایه هست به اسم item که توی اون یه سری آبجکت هست که توی این آبجکت ها یه سری پراپرتی، حالا یکی از این پراپرتی ها اسمش image هست که خودش یه آرایه هست و یه آبجکت داره که یه سری پراپرتی داره که من مثلا میخوام لینک عکس رو اون تو بگیرم...

حالا مشکلی که هست من تمام json رو خوندم و دسترسی بهش دارم، فقط نتونستم دوباره این Image رو بخونم و اون url توش رو به دست بیارم

من کدم رو میزارم، ممنون میشم دوستانی که میتونن کمک کنن روی همون کد من کد رو بزنن تا من بفهمم چی به چی هست.

میدونم درخواست بی جایی هست، ولی چون خیلی عجله دارم ممنون میشم زودتر راهنماییم کنید.

با تشکر از همه دوستان

package design.material.test.com.testmaterialdesign;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;

import com.flaviofaria.kenburnsview.KenBurnsView;
import com.victor.loading.rotate.RotateLoading;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;


public class Splash extends Activity {

    public RotateLoading rt;
    public BufferedReader reader;

    public static ArrayList<String> title = new ArrayList<>();
    public static ArrayList<String> teaser = new ArrayList<>();
    public static ArrayList<String> recieve_time = new ArrayList<>();
    public static ArrayList<String> receive_unixtime = new ArrayList<>();
    public static ArrayList<String> url_image = new ArrayList<>();
    public static ArrayList<String> image = new ArrayList<>();
    public static ArrayList<String> size = new ArrayList<>();
    public static ArrayList<String> mime = new ArrayList<>();
    public static ArrayList<String> website_name = new ArrayList<>();
    public static ArrayList<String> category_name = new ArrayList<>();
    public static ArrayList<String> internal_link = new ArrayList<>();
    public static ArrayList<String> link = new ArrayList<>();

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

        KenBurnsView kbv = (KenBurnsView) findViewById(R.id.kbv);
        kbv.resume();

        check();


    }

    private void check() {
        if (Connected()) {


            new get_data_from_server().execute();


        } else {
            Dialog();
        }
    }

    private void Dialog() {


        AlertDialog.Builder builder = new AlertDialog.Builder(Splash.this);
        builder.setTitle("عدم اتصال به اینترنت");
        builder.setMessage("لطفا اتصال اینترنت خود را بررسی کنید");
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setPositiveButton("تلاش دوباره", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i) {
                dialog.cancel();
                check();
            }
        });
        builder.setNegativeButton("خروح از نرم افزار", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.cancel();
                finish();
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();

    }

    private boolean Connected() {

        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        if (ni == null) {
            return false;
        } else {
            return true;
        }

    }


    public class get_data_from_server extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            rt = (RotateLoading) findViewById(R.id.rotateloading);
            rt.start();

        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            rt.stop();
            Intent intent = new Intent(Splash.this, Main_Activity.class);
            startActivity(intent);
            finish();

        }

        @Override
        protected Void doInBackground(Void... voids) {

            GetJsonData_();

            return null;
        }
    }

    private void GetJsonData_() {

        try {


            URL url_connect = new URL("http://api.khabarfarsi.net/api/news/latest/1?tid=*&output=json");
            URLConnection conn = url_connect.openConnection();
            conn.setDoOutput(true);

            reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }


            String result = sb.toString();

            JSONObject json = new JSONObject(result);

            JSONArray data = json.getJSONArray("items");


            for (int i = 0; i < data.length(); i++) {
                JSONObject object = data.getJSONObject(i);

                title.add(object.getString("title"));
                teaser.add(object.getString("teaser"));
                recieve_time.add(object.getString("recieve_time"));
                receive_unixtime.add(object.getString("receive_unixtime"));
                website_name.add(object.getString("website_name"));
                category_name.add(object.getString("category_name"));
                internal_link.add(object.getString("internal_link"));
                link.add(object.getString("link"));
                image.add(object.getString("image"));


                Log.e("title==> ", object.getString("title"));
                Log.e("teaser==> ", object.getString("teaser"));
                Log.e("recieve_time==> ", object.getString("recieve_time"));
                Log.e("recieve_time==> ", object.getString("recieve_time"));
                Log.e("receive_unixtime==> ", object.getString("receive_unixtime"));
                Log.e("website_name==> ", object.getString("website_name"));
                Log.e("category_name==> ", object.getString("category_name"));
                Log.e("internal_link==> ", object.getString("internal_link"));
                Log.e("link==> ", object.getString("link"));
                Log.e("image==> ", object.getString("image"));


        }


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

    }

}

 

0 0
چون image خودش یک json object هست، باید اول بریزیدش داخل یک JSONObject و بعد از داخل این JSONObject جدید اطلاعاتش رو بخونید. (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .