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

گرفتن یک object از داخل array با کتابخانه Volley

ReZa  9 سال پیش  9 سال پیش
0 0

سلام

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

کتابخانه استفاده شده برای گرفتن json از سرور Volley می باشد.

تا قسمت post را توانستم از سر.ور بگیرم اما الان نمیدونم با چه دستوری بگم از داخل ازایه ی post، ابجکت صفرم و قسمت content را ست تکست کن.

لطفا راهنمایی کنید.

 

 

 

 package com.app.dlandroid;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request.Method;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.app.dlandroid.app.AppController;


public class DlandroidActivity extends Activity {

// json object response url
private String urlJsonObj = "http://www.dlandroid.com/?json=get_posts&json_unescaped_unicode=1";

// json array response url
private String urlJsonArry = "http://www.dlandroid.com/?json=get_posts&json_unescaped_unicode=1";

private static String TAG = DlandroidActivity.class.getSimpleName();
private Button btnMakeObjectRequest, btnMakeArrayRequest;

// Progress dialog
private ProgressDialog pDialog;

private TextView txtResponse;

// temporary string to show the parsed response
private String jsonResponse;


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

btnMakeObjectRequest = (Button) findViewById(R.id.btnObjRequest);
btnMakeArrayRequest = (Button) findViewById(R.id.btnArrayRequest);
txtResponse = (TextView) findViewById(R.id.txtResponse);

pDialog = new ProgressDialog(this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);

btnMakeObjectRequest.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// making json object request
makeJsonObjectRequest();
}
});

btnMakeArrayRequest.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// making json array request
makeJsonArrayRequest();
}
});

}


/**
* Method to make json array request where response starts with [
* */
private void makeJsonArrayRequest() {

showpDialog();

JsonArrayRequest req = new JsonArrayRequest(urlJsonArry,
new Response.Listener<JSONArray>() {

@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());

try {
// Parsing json array response
// loop through each json object
jsonResponse = "";
for (int i = 0; i < response.length(); i++) {

JSONObject person = (JSONObject) response
.get(i);

String name = person.getString("name");
String email = person.getString("email");
JSONObject phone = person.getJSONObject("phone");
String home = phone.getString("home");
String mobile = phone.getString("mobile");
JSONObject posts = person.getJSONObject("posts");

jsonResponse += "Name: " + name + "\n\n";
jsonResponse += "Email: " + email + "\n\n";
jsonResponse += "Home: " + home + "\n\n";
jsonResponse += "Mobile: " + mobile + "\n\n\n";
jsonResponse += "posts: " + name + "\n\n";

}

txtResponse.setText(jsonResponse);

}
catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}

hidepDialog();
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
hidepDialog();
}
});

// Adding request to request queue
AppController.getInstance().addToRequestQueue(req);
}


/**
* Method to make json object request where json response starts wtih {
* */
private void makeJsonObjectRequest() {

showpDialog();

JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
urlJsonObj, null, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());

try {
// Parsing json object response
// response will be a json object
String posts = response.getString("name");
String email = response.getString("email");
JSONObject phone = response.getJSONObject("phone");
String home = phone.getString("home");
String mobile = phone.getString("mobile");

jsonResponse = "";
jsonResponse += "Name: " + name + "\n\n";
jsonResponse += "Email: " + email + "\n\n";
jsonResponse += "Home: " + home + "\n\n";
jsonResponse += "Mobile: " + mobile + "\n\n";

txtResponse.setText(jsonResponse);

}
catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
hidepDialog();
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
// hide the progress dialog
hidepDialog();
}
});

// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq);
}


private void showpDialog() {
if ( !pDialog.isShowing())
pDialog.show();
}


private void hidepDialog() {
if (pDialog.isShowing())
pDialog.dismiss();
}
}
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Criss  9 سال پیش
+2 0

در ابتدا شما باید JSONObject بگیرید < که میشه کل String از سمت سرور ، بعد از اون شما KEY برابر با posts رو میگیرید که مقدار VALUE اون یک ارایه هست باید اون رو واریز کنید به یک JSONArray بعد از اون index 0 رو بگیرد و واریز کنید به یک JSONObject از دورن این JSONObject میتونید KEY های دلخواه رو بگیرید و واریز به String و یا هرچیز دیگه ایی کنید

خروجی خط زیر رو تغیبر بدید <

 JSONObject posts = person.getJSONObject("posts");

 

0 0
اگه میشه کدش را برام بنویسید (9 سال پیش)

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