JSON из спокойного веб-сервиса

Я создал полноценный веб-сервис в php, используя slim framework. Одна из функций возвращает динамически создаваемый многомерный массив и кодирует его в виде массива JSON, например так

[{
"hid":100001,
"SubTable":"grpsubs",
"StatTable":"grpstats",
"uid":2,
"Status":"G"},
{
"hid":100002,
"SubTable":"gtmsubs",
"StatTable":"gtmstats",
"uid":2,
"Status":"R"}]

В моем приложении для Android я использую среду loopj, чтобы получить спокойный вывод, как это

AsyncHttpClient client = new AsyncHttpClient();
client.addHeader("Authorization", key);
client.post("https://mythic-beanbag-106723.appspot.com/v1/mine", params, new AsyncHttpResponseHandler() {
// When the response returned by REST has Http response code '200'
@Override
public void onSuccess(String response) {
// Hide Progress Dialog
hospDialog.hide();
Log.e("Response", response);
try {

JSONArray array = new JSONArray(response);
Log.e("array", String.valueOf(array.length()));

} catch (JSONException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "Error Occurred [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show();
e.printStackTrace();

}
}

Используя Advanced REST Client в Chrome, я могу видеть JSON в своем приложении, когда пытаюсь вывести JSON в консоль. Log.e("Response", response); он отображается как пустой массив [], Этот код работает для моей функции входа в систему и в php, если вместо использования динамически созданного массива я использую статический массив, например array("abc"=>array("def"=>"ghi"), "jkl"=>array("mno"=>"pqr")) приведенный выше код выводит массив JSON.

ОБНОВИТЬ:

Титулы

RequestParams params = new RequestParams();
params.put("uid", prefs.getInt("uid", 0));

1

Решение

    public class MenuTop extends Activity  {

ArrayList<MenuTopJson> actorsList;
ArrayList<String> id = new ArrayList<String>();
ArrayList<String> onvan = new ArrayList<String>();
ArrayList<String> sath = new ArrayList<String>();
ArrayList<String> zir = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.menutop);
//this.setTitle("Int");
actorsList = new ArrayList<MenuTopJson>();
new JSONAsyncTask().execute("https://your web");
}


class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {

ProgressDialog dialog;

@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MenuTop.this);
dialog.setMessage("Loading, please wait");
dialog.setTitle("Connecting server");
dialog.show();
dialog.setCancelable(false);
}

@Override
protected Boolean doInBackground(String... urls) {
try {

//------------------>>
HttpGet httppost = new HttpGet(urls[0]);
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);

// StatusLine stat = response.getStatusLine();
int status = response.getStatusLine().getStatusCode();

if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);


JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("worldpopulation");
//db.execSQL("DROP TABLE IF EXISTS '" + CountriesDbAdapter.SQLITE_TABLE + "'");




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

MenuTopJson actor = new MenuTopJson();

actor.setId(object.getString("id"));
actor.setOnvan(object.getString("onvan"));
actor.setSath(object.getString("sath"));
actor.setZir(object.getString("zir"));
// Log.d("sss",object.getString("onvan").toString());
id.add(object.getString("id").toString());
onvan.add(object.getString("onvan").toString());
sath.add(object.getString("sath").toString());
zir.add(object.getString("zir").toString());


actorsList.add(actor);
}

return true;
}

//------------------>>

} catch (ParseException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}

protected void onPostExecute(Boolean result) {
dialog.cancel();
if(result == true)
{
//  Onsql();
//Toast.makeText(getApplicationContext(), "Unable to fetch data from server", Toast.LENGTH_LONG).show();
//  clearApplicationData();

Log.d("array=",Arrays.toString(actorsList.toArray()));

final LinearLayout lm = (LinearLayout) findViewById(R.id.dynamically_create_view_element);

// create the layout params that will be used to define how your
// button will be displayed
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
//  params.height=40;
params.width=200;
Log.d("array=",String.valueOf(onvan.size()));
//Create four
for(int j=1;j<=onvan.size();j++)
{
// Create LinearLayout
LinearLayout ll = new LinearLayout(MenuTop.this);
ll.setOrientation(LinearLayout.HORIZONTAL);

/*    // Create TextView
TextView product = new TextView(this);
product.setText(" Product"+j+"    ");
ll.addView(product);

// Create TextView
TextView price = new TextView(this);
price.setText("  $"+j+"     ");
ll.addView(price);*/

// Create Button
final Button btn = new Button(MenuTop.this);
// Give button an ID
btn.setId(j+1);
// btn.setText("Add To Cart");
//  btn.setTextAppearance(this,  R.style.btnStyleShakespeare);

//btnStyleShakespeare
// set the layoutParams on the button
btn.setLayoutParams(params);

btn.setText(onvan.get(j-1).toString());

final int index = j;
// Set click listener for button
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {




String id_list=id.get(index-1).toString();
String onvan_list=onvan.get(index-1).toString();
String sath_list=sath.get(index-1).toString();
String zir_list=zir.get(index-1).toString();


Log.i("TAG", "index :"   + id_list +":"+onvan_list+":"+sath_list+":"+zir_list);

/*  Toast.makeText(getApplicationContext(),
"Clicked:" +"index :" + id_list +":"+onvan_list+":"+sath_list+":"+zir_list,
Toast.LENGTH_SHORT).show();*/



Intent intent = new Intent(MenuTop.this, MenuTopZone1.class);
intent.putExtra("key1",id_list);
intent.putExtra("key2", onvan_list);
intent.putExtra("key3", sath_list);
intent.putExtra("key4", zir_list);
startActivity(intent);
finish();

}
});

//Add button to LinearLayout
ll.addView(btn);
//Add button to LinearLayout defined in XML
lm.addView(ll);
}


}else
{
//clearApplicationData();
//
//SQLiteDatabase.deleteDatabase("World");
// clearApplicationData();
}
}



}

}

в актерском классе:
пакет com.wingnity.jmajid;

актеры публичного класса {

private String  id;
private String  shdaneshjo;
private String  moavenat;
private String  darkhast;
private String  startdate;
private String  taiid;

// private String reshteh;
частная строка тозих;

public Actors() {
// TODO Auto-generated constructor stub
}

public Actors(
String id,
String shdaneshjo,
String moavenat,
String darkhast,
String startdate,
String taiid,
//String reshteh,
String tozih
) {
super();

this.id=id;
this.shdaneshjo=shdaneshjo;
this.moavenat=moavenat;
this.darkhast=darkhast;
this.startdate=startdate;
this.taiid=taiid;
//this.reshteh=reshteh;
this.tozih=tozih;


}


public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getShdaneshjo() {
return shdaneshjo;
}

public void setShdaneshjo(String shdaneshjo) {
this.shdaneshjo = shdaneshjo;
}

public String getMoavenat() {
return moavenat;
}

public void setMoavenat(String moavenat) {
this.moavenat = moavenat;
}

public String getDarkhast() {
return darkhast;
}

public void setDarkhast(String darkhast) {
this.darkhast = darkhast;
}
public String getStartdate() {
return startdate;
}

public void setStartdate(String startdate) {
this.startdate = startdate;
}

public String getTaiid() {
return taiid;
}

public void setTaiid(String taiid) {
this.taiid = taiid;
}

public String getTozih() {
return tozih;
}

public void setTozih(String tozih) {
this.tozih = tozih;
}

}

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]