خواندن یک آرایه در json از داخل آرایه دیگر
دوستان سلام
سایت ... یه 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();
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .