Android JSON解析并在textview中显示url
我需要在listview中解析和显示url内容。我已经使用lazyloading解析了标题、日期、内容、名称和图像,但现在我需要解析url并在listview中显示其内容。 但这里的问题不是显示url,而是显示图像url。下面是我的json响应(这里只包含少数响应)和解析代码Android JSON解析并在textview中显示url,android,json,Android,Json,我需要在listview中解析和显示url内容。我已经使用lazyloading解析了标题、日期、内容、名称和图像,但现在我需要解析url并在listview中显示其内容。 但这里的问题不是显示url,而是显示图像url。下面是我的json响应(这里只包含少数响应)和解析代码 "posts": [ { "id": 2954, "type": "ad_listing", "slug": "commander-retreat-for-sale"
"posts": [
{
"id": 2954,
"type": "ad_listing",
"slug": "commander-retreat-for-sale",
"url": "http://avoidserum/ads/commander-retreat-for-sale/",
"status": "publish",
"title": "Commander Retreat for sale",
"title_plain": "Commander Retreat for sale",
"content": "<p>Commander Retreat : Hebbal Lake<br />\n2 BHK<br />\nBuilt up: 1180sft<br />\n3rd floor<br />\nTotal G+3 floors<br />\nWest facing<br />\nFurnished<br />\nSale price Rs. 50lacs ( nego)<br />\nFor further details please call M/s. Farid Consultants @ 9844106901 /9880123548<br />\nEmail: manjula@faridconsultants.com</p>\n",
"excerpt": "Commander Retreat : Hebbal Lake 2 BHK Built up: 1180sft 3rd floor Total G+3 floors West facing Furnished Sale price Rs. 50lacs ( nego) For further details please call M/s. Farid Consultants @ 9844106901 /9880123548 Email: manjula@faridconsultants.com",
"date": "2013-02-01 05:09:58",
"modified": "2013-02-01 05:09:58",
"categories": [],
"tags": [],
"author": {
"id": 344,
"slug": "ruby",
"name": "Ruby",
"first_name": "",
"last_name": "",
"nickname": "Ruby",
"url": "",
"description": ""
},
"comments": [],
"attachments": [
{
"id": 2955,
"url": "http://imageurl/wp-content/uploads/2013/01/785862.jpg",
"slug": "commander-retreat-for-sale",
"title": "Commander Retreat for sale",
"description": "",
"caption": "",
"parent": 2954,
"mime_type": "image/jpeg",
},
.....................
static final String KEY_POSTS = "posts";
static final String KEY_ID = "id";
static final String KEY_SITEURL = "url";
static final String KEY_TITLE = "title";
static final String KEY_DATE = "date";
static final String KEY_CONTENT = "content";
static final String KEY_AUTHOR = "author";
static final String KEY_NAME = "name";
static final String KEY_ATTACHMENTS = "attachments";
static final String KEY_SLUG = "slug";
static final String KEY_THUMB_URL = "thumbnail";
static final String KEY_IMAGES = "images";
static final String KEY_URL = "url";
final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
// Creating JSON Parser instance
final JSONParser jParser = new JSONParser();
// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(URL);
try {
posts = json.getJSONArray(KEY_POSTS);
// looping through all song nodes <song>
for(int i = 0; i < posts.length(); i++){
JSONObject c = posts.getJSONObject(i);
// Storing each json item in variable
String id = c.getString(KEY_ID);
String siteurl = c.getString(KEY_SITEURL);
String title = c.getString(KEY_TITLE);
String date = c.getString(KEY_DATE);
String content = c.getString(KEY_CONTENT);
// to remove all <P> </p> and <br /> and replace with ""
content = content.replace("<br />", "");
content = content.replace("<p>", "");
content = content.replace("</p>", "");
//authornumber is agin JSON Object
JSONObject author = c.getJSONObject(KEY_AUTHOR);
String name = author.getString(KEY_NAME);
String url1 = null;
String slug1 = null;
try {
JSONArray atta = c.getJSONArray("attachments");
for(int j = 0; j < atta.length(); j++){
JSONObject d = atta.getJSONObject(j);
slug1 = d.getString(KEY_SLUG);
JSONObject images = d.getJSONObject(KEY_IMAGES);
JSONObject thumbnail = images.getJSONObject(KEY_THUMB_URL);
url1 = thumbnail.getString(KEY_URL);
}
} catch (Exception e) {
e.printStackTrace();
}
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(KEY_ID, id);
map.put(KEY_TITLE, title);
map.put(KEY_SITEURL, siteurl);
map.put(KEY_DATE, date);
map.put(KEY_NAME, name);
map.put(KEY_CONTENT, content);
map.put(KEY_SLUG, slug1);
map.put(KEY_URL, url1);
// adding HashList to ArrayList
songsList.add(map);
}
}catch (JSONException e) {
e.printStackTrace();
}
final ListView list=(ListView)findViewById(android.R.id.list);
// Getting adapter by passing json data ArrayList
adapter=new LazyAdapter(this, songsList);
list.setAdapter(adapter);
“posts”:[
{
“id”:2954,
“类型”:“广告列表”,
“鼻涕虫”:“指挥官撤退出售”,
“url”:”http://avoidserum/ads/commander-retreat-for-sale/",
“状态”:“发布”,
“头衔”:“出售指挥官撤退”,
“头衔”——“出售指挥官撤退”,
“内容”:“指挥官休养地:赫巴尔湖
\n2 BHK
\n建筑:1180sft
\n三楼
\n总G+3楼
\n西向
\n焚化
\n售价50卢比(nego)
\n有关详细信息,请致电M/s.Farid Consultants@9844106901/9880123548
\n邮件:manjula@faridconsultants.com\n“,
“摘录”:“指挥官休养地:Hebbal Lake 2 BHK建成:1180平方英尺三楼G+3层西向家具销售价格50卢比(nego),详情请致电M/s.Farid Consultants@9844106901/9880123548电子邮件:manjula@faridconsultants.com",
“日期”:“2013-02-01 05:09:58”,
“修改”:“2013-02-01 05:09:58”,
“类别”:[],
“标签”:[],
“作者”:{
“id”:344,
“slug”:“ruby”,
“名称”:“Ruby”,
“名字”:“,
“姓氏”:“,
“昵称”:“红宝石”,
“url”:“,
“说明”:”
},
“评论”:[…],
“附件”:[
{
“id”:2955,
“url”:”http://imageurl/wp-content/uploads/2013/01/785862.jpg",
“鼻涕虫”:“指挥官撤退出售”,
“头衔”:“出售指挥官撤退”,
“说明”:“,
“标题”:“,
“家长”:2954,
“mime_类型”:“图像/jpeg”,
},
.....................
解析代码
"posts": [
{
"id": 2954,
"type": "ad_listing",
"slug": "commander-retreat-for-sale",
"url": "http://avoidserum/ads/commander-retreat-for-sale/",
"status": "publish",
"title": "Commander Retreat for sale",
"title_plain": "Commander Retreat for sale",
"content": "<p>Commander Retreat : Hebbal Lake<br />\n2 BHK<br />\nBuilt up: 1180sft<br />\n3rd floor<br />\nTotal G+3 floors<br />\nWest facing<br />\nFurnished<br />\nSale price Rs. 50lacs ( nego)<br />\nFor further details please call M/s. Farid Consultants @ 9844106901 /9880123548<br />\nEmail: manjula@faridconsultants.com</p>\n",
"excerpt": "Commander Retreat : Hebbal Lake 2 BHK Built up: 1180sft 3rd floor Total G+3 floors West facing Furnished Sale price Rs. 50lacs ( nego) For further details please call M/s. Farid Consultants @ 9844106901 /9880123548 Email: manjula@faridconsultants.com",
"date": "2013-02-01 05:09:58",
"modified": "2013-02-01 05:09:58",
"categories": [],
"tags": [],
"author": {
"id": 344,
"slug": "ruby",
"name": "Ruby",
"first_name": "",
"last_name": "",
"nickname": "Ruby",
"url": "",
"description": ""
},
"comments": [],
"attachments": [
{
"id": 2955,
"url": "http://imageurl/wp-content/uploads/2013/01/785862.jpg",
"slug": "commander-retreat-for-sale",
"title": "Commander Retreat for sale",
"description": "",
"caption": "",
"parent": 2954,
"mime_type": "image/jpeg",
},
.....................
static final String KEY_POSTS = "posts";
static final String KEY_ID = "id";
static final String KEY_SITEURL = "url";
static final String KEY_TITLE = "title";
static final String KEY_DATE = "date";
static final String KEY_CONTENT = "content";
static final String KEY_AUTHOR = "author";
static final String KEY_NAME = "name";
static final String KEY_ATTACHMENTS = "attachments";
static final String KEY_SLUG = "slug";
static final String KEY_THUMB_URL = "thumbnail";
static final String KEY_IMAGES = "images";
static final String KEY_URL = "url";
final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
// Creating JSON Parser instance
final JSONParser jParser = new JSONParser();
// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(URL);
try {
posts = json.getJSONArray(KEY_POSTS);
// looping through all song nodes <song>
for(int i = 0; i < posts.length(); i++){
JSONObject c = posts.getJSONObject(i);
// Storing each json item in variable
String id = c.getString(KEY_ID);
String siteurl = c.getString(KEY_SITEURL);
String title = c.getString(KEY_TITLE);
String date = c.getString(KEY_DATE);
String content = c.getString(KEY_CONTENT);
// to remove all <P> </p> and <br /> and replace with ""
content = content.replace("<br />", "");
content = content.replace("<p>", "");
content = content.replace("</p>", "");
//authornumber is agin JSON Object
JSONObject author = c.getJSONObject(KEY_AUTHOR);
String name = author.getString(KEY_NAME);
String url1 = null;
String slug1 = null;
try {
JSONArray atta = c.getJSONArray("attachments");
for(int j = 0; j < atta.length(); j++){
JSONObject d = atta.getJSONObject(j);
slug1 = d.getString(KEY_SLUG);
JSONObject images = d.getJSONObject(KEY_IMAGES);
JSONObject thumbnail = images.getJSONObject(KEY_THUMB_URL);
url1 = thumbnail.getString(KEY_URL);
}
} catch (Exception e) {
e.printStackTrace();
}
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(KEY_ID, id);
map.put(KEY_TITLE, title);
map.put(KEY_SITEURL, siteurl);
map.put(KEY_DATE, date);
map.put(KEY_NAME, name);
map.put(KEY_CONTENT, content);
map.put(KEY_SLUG, slug1);
map.put(KEY_URL, url1);
// adding HashList to ArrayList
songsList.add(map);
}
}catch (JSONException e) {
e.printStackTrace();
}
final ListView list=(ListView)findViewById(android.R.id.list);
// Getting adapter by passing json data ArrayList
adapter=new LazyAdapter(this, songsList);
list.setAdapter(adapter);
static final String KEY\u POSTS=“POSTS”;
静态最终字符串键\u ID=“ID”;
静态最终字符串键\u SITEURL=“url”;
静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u DATE=“DATE”;
静态最终字符串键\u CONTENT=“CONTENT”;
静态最终字符串键\u AUTHOR=“AUTHOR”;
静态最终字符串键\u NAME=“NAME”;
静态最终字符串键\u ATTACHMENTS=“ATTACHMENTS”;
静态最终字符串键\u SLUG=“SLUG”;
静态最终字符串键\u THUMB\u URL=“缩略图”;
静态最终字符串键\u IMAGES=“IMAGES”;
静态最终字符串键\u URL=“URL”;
最终ArrayList歌曲列表=新ArrayList();
//创建JSON解析器实例
final-JSONParser-jParser=new-JSONParser();
//从URL获取JSON字符串
JSONObject json=jParser.getJSONFromUrl(URL);
试一试{
posts=json.getJSONArray(KEY_posts);
//循环通过所有歌曲节点
对于(int i=0;i和
并替换为“”
content=content.replace(“
,”);
content=content.replace(“”,”);
内容=内容。替换(“”,“”);
//authornumber是agin JSON对象
JSONObject author=c.getJSONObject(KEY_author);
字符串名称=author.getString(键名称);
字符串url1=null;
字符串slug1=null;
试一试{
JSONArray atta=c.getJSONArray(“附件”);
对于(int j=0;jvalue
地图放置(钥匙ID,ID);
地图放置(图例标题、标题);
map.put(KEY\u SITEURL,SITEURL);
地图放置(钥匙日期,日期);
地图放置(键名称、名称);
地图放置(关键内容,内容);
map.put(键_SLUG,slug1);
map.put(KEY_URL,url1);
//将哈希列表添加到ArrayList
歌曲列表。添加(地图);
}
}捕获(JSONException e){
e、 printStackTrace();
}
最终ListView列表=(ListView)findViewById(android.R.id.list);
//通过传递json数据ArrayList获取适配器
adapter=新的LazyAdapter(此,songsList);
list.setAdapter(适配器);
LazyAdapter.java
public class LazyAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
public LazyAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_item, null);
TextView title = (TextView)vi.findViewById(R.id.title); // title
TextView siteurl = (TextView)vi.findViewById(R.id.siteurl);
TextView date = (TextView)vi.findViewById(R.id.date); // artist name
TextView content = (TextView)vi.findViewById(R.id.content); // duration
TextView name = (TextView)vi.findViewById(R.id.name);
// duration
ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
ListView list;
// Setting all values in listview
title.setText(song.get(MainActivity.KEY_TITLE));
siteurl.setText(song.get(MainActivity.KEY_SITEURL));
date.setText(song.get(MainActivity.KEY_DATE));
content.setText(song.get(MainActivity.KEY_CONTENT));
name.setText(song.get(MainActivity.KEY_NAME));
imageLoader.DisplayImage(song.get(MainActivity.KEY_URL), thumb_image);
return vi;
}
公共类LazyAdapter扩展了BaseAdapter{
私人活动;
私有数组列表数据;
专用静态充气机=空;
公共图像加载器;
公共LazyAdapter(活动a,ArrayList d){
活动=a;
数据=d;
充气器=(LayoutFlater)活动。getSystemService(Context.LAY