Android JSON解析并在textview中显示url

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"

我需要在listview中解析和显示url内容。我已经使用lazyloading解析了标题、日期、内容、名称和图像,但现在我需要解析url并在listview中显示其内容。 但这里的问题不是显示url,而是显示图像url。下面是我的json响应(这里只包含少数响应)和解析代码

"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