我正在获取JSON数组。
[{"0":"500","post_id":"500","1":"Ps-2","post_title":"Ps-2","2":"Ps-2 in new condition. used only for 15 to 20 times.\n3 dvd's will also be given freely.\nthis all for a nominal price","post_des":"Ps-2 in new condition. used only for 15 to 20 times.\n3 dvd's will also be given freely.\nthis all for a nominal price","3":"2013-02-16 04:02:24","post_date":"2013-02-16 04:02:24","4":"2013-02-16 04:02:24","edit_date":"2013-02-16 04:02:24","5":"1","post_status":"1","6":"5","user_id":"5","7":"0","featuered":"0","8":"11","sub_cat_id":"11","9":"1","cat_id":"1","10":"7500","post_price":"7500","11":".\/uploads\/lmf-classifieds-pk\/folder1\/2013-02-16\/500\/1361014226-ps-2-lmf-com-pk.jpg","post_img":".\/uploads\/lmf-classifieds-pk\/folder1\/2013-02-16\/500\/1361014226-ps-2-lmf-com-pk.jpg","12":"1","post_country_id":"1","13":"7","post_state_id":"7","14":"92","post_city_id":"92","15":"olx","post_ref":"olx","16":"03335525488","number":"03335525488","17":"7","state_id":"7","18":"Punjab","state_title":"Punjab","19":"Punjab","state_des":"Punjab","20":"1","state_status":"1","21":"1","country_id":"1","22":"populer","state_type":"populer","23":"92","city_id":"92","24":"Rawalpindi","city_title":"Rawalpindi","25":"Rawalpindi","city_des":"Rawalpindi","26":"1","city_status":"1","27":"7","28":"populer","city_type":"populer","29":"populer","is_important":"populer","30":"16-February-2013","p_date":"16-February-2013","image1":"..\/uploads\/lmf-classifieds-pk\/folder1\/2013-02-16\/500\/1361014226-ps-2-lmf-com-pk.jpg","image2":"..\/uploads\/lmf-classifieds-pk\/folder1\/2013-02-16\/500\/1361014225-ps-2-lmf-com-pk.jpg"}]
然后我将该数组转换为JSON对象。如何检查此数组中是否存在“数字”索引?
这是我的完整代码:
package com.example.lmf;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class adsDetail extends Activity {
String id = "";
String title = null;
String desc = null;
String num = "";
ArrayList<String> files = new ArrayList<String>();
String arr[] = {};
Context context = this;
final static String URL = "http://www.lmf.com.pk/admin/json.php?";
final getInternetData obj = new getInternetData();
public ImageLoader imageLoader = null;
public FileCache clearCache = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.ads_detail);
id = getIntent().getExtras().getInt("id")!= 0 ? "id="+getIntent().getExtras().getInt("id") : "";
Button share = (Button) findViewById(R.id.share);
share.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//create the send intent
Intent shareIntent =
new Intent(android.content.Intent.ACTION_SEND);
//set the type
shareIntent.setType("text/plain");
//add a subject
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
title);
//build the body of the message to be shared
String shareMessage = "http://lmf.com.pk?single_ad.php?title="+title+"&"+id;
//add the message
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
shareMessage);
//start the chooser for sharing
startActivity(Intent.createChooser(shareIntent,
title));
}
});
final ImageView call = (ImageView) findViewById(R.id.imageView2);
call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String uri = "tel:" + num.trim() ;
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(uri));
startActivity(intent);
}
});
//obj.showProgress(context);
new getBackgroundData().execute();
}
////////////Async Class
private class getBackgroundData extends AsyncTask<Void, Integer, JSONArray>
{
@Override
protected JSONArray doInBackground(Void... params)
{
try
{
JSONArray array = obj.getDATA(id,URL);
return array;
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(JSONArray array)
{
try
{
JSONObject row = array.getJSONObject(0);
//// Post Title Creation start here /////////
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(row.getString("post_title"));
title = row.getString("post_title");
//// Post Title Creating Ends here /////////
//// Getting Phone Number //////////////////
if(row.has("number"))
{
num = row.getString("number");
}
else
{
num = "123";
}
Toast.makeText(context, num, Toast.LENGTH_LONG).show();
//// Getting Number Ends HEre /////////////
////Post Price Creation start here /////////
TextView price = (TextView) findViewById(R.id.textView2);
if(row.getString("post_price")!="" && row.getString("post_price")!="FREE")
{
price.setText(row.getString("post_price"));
}
else
{
price.setText(row.getString("post_price"));
}
price.setTextColor(Color.LTGRAY);
price.setTextSize(16);
price.setTypeface(null,Typeface.BOLD);
////Post Price Creating Ends here /////////
////Post user Creation start here /////////
TextView user = (TextView) findViewById(R.id.post_user);
user.setText("Anonymouse");
////Post user Creating Ends here /////////
////Post state Creation start here /////////
TextView state = (TextView) findViewById(R.id.textView3);
state.setText(row.getString("state_title"));
state.setTextSize(10);
state.setTypeface(null,Typeface.BOLD);
////Post state Creating Ends here /////////
////Post city Creation start here /////////
TextView city = (TextView) findViewById(R.id.textView4);
city.setText(row.getString("city_title"));
city.setTextSize(9);
city.setTypeface(null,Typeface.BOLD);
////Post city Creating Ends here /////////
////Post post date Creation start here /////////
TextView date = (TextView) findViewById(R.id.post_date);
date.setText("Posted On : "+row.getString("p_date"));
////Post post date Creating Ends here /////////
////Post Price Creation start here /////////
TextView post_des = (TextView) findViewById(R.id.post_detail);
post_des.setText(row.getString("post_des").replaceAll("\\<.*?>",""));
desc = row.getString("post_des");
////Post Price Creating Ends here /////////
//// Image Creating Starts from here /////////
ImageView imageView = (ImageView) findViewById(R.id.imageView1);
String[] parts = row.getString("post_img").split("/");
int last_index = parts.length - 1;
//String str = "";
for(int j=0; j<last_index; j++)
{
//str += parts[j]+"/";
}
String path = "http://www.lmf.com.pk/"+row.getString("post_img");
getImageUrls(path);
Drawable image = drawable_from_url(path,"");
imageView.setBackgroundDrawable(image);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(context,com.example.lmf.ImageGallery.class);
i.putExtra("imageUrlArray", files.toArray(new String[files.size()]));
startActivity(i);
}
});
//// Image Creating Ends here /////////
//obj.hideProgress();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
/////////// Ends Here
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuItem item = menu.add ("Quit");
MenuItem item2 = menu.add ("Clear Cache");
item.setOnMenuItemClickListener (new OnMenuItemClickListener()
{
@Override
public boolean onMenuItemClick (MenuItem item)
{
//clearArray();
finish();
return true;
}
});
item2.setOnMenuItemClickListener (new OnMenuItemClickListener()
{
@Override
public boolean onMenuItemClick (MenuItem item)
{
//clearCahe();
clearCache.clear();
return true;
}
});
return true;
}
Drawable drawable_from_url(String url, String src_name) throws
java.net.MalformedURLException, java.io.IOException
{
return Drawable.createFromStream(((java.io.InputStream)
new java.net.URL(url).getContent()), src_name);
}
public void getImageUrls(String path)
{
files.add(path);
}
}
答案 0 :(得分:3)
我刚试过这个并且它有效。你在做类似的事吗?
JSONArray array = null;
String num = "";
try {
array = new JSONArray("[{\"0\":\"500\",\"post_id\":\"500\",\"1\":\"Ps-2\",\"post_title\":\"Ps-2\",\"2\":\"Ps-2 in new condition. used only for 15 to 20 times.\\n3 dvd's will also be given freely.\\nthis all for a nominal price\",\"post_des\":\"Ps-2 in new condition. used only for 15 to 20 times.\\n3 dvd's will also be given freely.\\nthis all for a nominal price\",\"3\":\"2013-02-16 04:02:24\",\"post_date\":\"2013-02-16 04:02:24\",\"4\":\"2013-02-16 04:02:24\",\"edit_date\":\"2013-02-16 04:02:24\",\"5\":\"1\",\"post_status\":\"1\",\"6\":\"5\",\"user_id\":\"5\",\"7\":\"0\",\"featuered\":\"0\",\"8\":\"11\",\"sub_cat_id\":\"11\",\"9\":\"1\",\"cat_id\":\"1\",\"10\":\"7500\",\"post_price\":\"7500\",\"11\":\".\\/uploads\\/lmf-classifieds-pk\\/folder1\\/2013-02-16\\/500\\/1361014226-ps-2-lmf-com-pk.jpg\",\"post_img\":\".\\/uploads\\/lmf-classifieds-pk\\/folder1\\/2013-02-16\\/500\\/1361014226-ps-2-lmf-com-pk.jpg\",\"12\":\"1\",\"post_country_id\":\"1\",\"13\":\"7\",\"post_state_id\":\"7\",\"14\":\"92\",\"post_city_id\":\"92\",\"15\":\"olx\",\"post_ref\":\"olx\",\"16\":\"03335525488\",\"number\":\"03335525488\",\"17\":\"7\",\"state_id\":\"7\",\"18\":\"Punjab\",\"state_title\":\"Punjab\",\"19\":\"Punjab\",\"state_des\":\"Punjab\",\"20\":\"1\",\"state_status\":\"1\",\"21\":\"1\",\"country_id\":\"1\",\"22\":\"populer\",\"state_type\":\"populer\",\"23\":\"92\",\"city_id\":\"92\",\"24\":\"Rawalpindi\",\"city_title\":\"Rawalpindi\",\"25\":\"Rawalpindi\",\"city_des\":\"Rawalpindi\",\"26\":\"1\",\"city_status\":\"1\",\"27\":\"7\",\"28\":\"populer\",\"city_type\":\"populer\",\"29\":\"populer\",\"is_important\":\"populer\",\"30\":\"16-February-2013\",\"p_date\":\"16-February-2013\",\"image1\":\"..\\/uploads\\/lmf-classifieds-pk\\/folder1\\/2013-02-16\\/500\\/1361014226-ps-2-lmf-com-pk.jpg\",\"image2\":\"..\\/uploads\\/lmf-classifieds-pk\\/folder1\\/2013-02-16\\/500\\/1361014225-ps-2-lmf-com-pk.jpg\"}]\n");
JSONObject row = array.getJSONObject(0);
if(row.has("number")) {
num = row.getString("number");
}
} catch (JSONException e) {
}
Toast.makeText(this, num, Toast.LENGTH_LONG);