Json数据解析模拟美团界面显示

这篇文章主要介绍了Json数据解析模拟美团界面显示,涉及到json数据解析相关知识,本文写的非常不错,具有参考价值,特此分享供大家学习

    -  

运行效果图:

需要用到四个lib包 :解析json gson包,从网络地址解析json数据成String字符串的异步网络解析工具AsyncHttpClient,等

下载地址:点击下载

代码如下:

 package com.lixu.testjsonall; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.TextHttpResponseHandler; import com.squareup.picasso.Picasso; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import cz.msebera.android.httpclient.Header; public class MainActivity extends Activity { private String net_url = "http://.../json/around"; private ListView lv; private MyAdapter mMyAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); mMyAdapter = new MyAdapter(this, -); lv.setAdapter(mMyAdapter); AsyncHttpClient ahc = new AsyncHttpClient(); ahc.get(net_url, new TextHttpResponseHandler() { // 通过网络地址解析Json数据成String类型 @Override public void onSuccess(int arg, Header[] arg, String arg) { // 从字符串中解析json文件 Gson gson = new Gson(); Infoall infoall = gson.fromJson(arg, Infoall.class); Info info = infoall.getInfo(); List mMerchantKey = info.getMerchantKey(); mMyAdapter.setList(mMerchantKey); } @Override public void onFailure(int arg, Header[] arg, String arg, Throwable arg) { Toast.makeText(getApplicationContext(), "错误!", ).show(); } }); } private class MyAdapter extends ArrayAdapter { private LayoutInflater flater; private List data = new ArrayList(); private Context context; public MyAdapter(Context context, int resource) { super(context, resource); this.context = context; flater = LayoutInflater.from(context); } public void setList(List data) { this.data = data; mMyAdapter.notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) convertView = flater.inflate(R.layout.list, null); TextView biaoti = (TextView) convertView.findViewById(R.id.list_name_txt); biaoti.setText(data.get(position).getName()); TextView biaoti = (TextView) convertView.findViewById(R.id.list_coupe_txt); biaoti.setText(data.get(position).getCoupon()); TextView dizhi = (TextView) convertView.findViewById(R.id.list_location_txt); dizhi.setText(data.get(position).getLocation()); TextView juli = (TextView) convertView.findViewById(R.id.list_distance_txt); juli.setText(data.get(position).getDistance()); ImageView jpg = (ImageView) convertView.findViewById(R.id.list_icon_img); Picasso.with(context).load(data.get(position).getPicUrl()).into(jpg); ImageView tuan = (ImageView) convertView.findViewById(R.id.list_group_img); ImageView quan = (ImageView) convertView.findViewById(R.id.list_ticket_img); ImageView ka = (ImageView) convertView.findViewById(R.id.list_card_img); if (data.get(position).getGroupType().equals("YES")) { tuan.setVisibility(View.VISIBLE); } else { tuan.setVisibility(View.GONE); } if (data.get(position).getCardType().equals("YES")) { ka.setVisibility(View.VISIBLE); } else { ka.setVisibility(View.GONE); } if (data.get(position).getCouponType().equals("YES")) { quan.setVisibility(View.VISIBLE); } else { quan.setVisibility(View.GONE); } return convertView; } @Override public int getCount() { return data.size(); } } } package com.lixu.testjsonall; import java.util.List; public class Info { private List merchantKey; public List getMerchantKey() { return merchantKey; } public void setMerchantKey(List merchantKey) { this.merchantKey = merchantKey; } } package com.lixu.testjsonall; public class Infoall { private Info info; public Info getInfo() { return info; } public void setInfo(Info info) { this.info = info; } } package com.lixu.testjsonall; public class MerchantKey { private String name; private String coupon; private String location; private String distance; private String picUrl; private String couponType; private String cardType; private String groupType; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCoupon() { return coupon; } public void setCoupon(String coupon) { this.coupon = coupon; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getDistance() { return distance; } public void setDistance(String distance) { this.distance = distance; } public String getPicUrl() { return picUrl; } public void setPicUrl(String picUrl) { this.picUrl = picUrl; } public String getCouponType() { return couponType; } public void setCouponType(String couponType) { this.couponType = couponType; } public String getCardType() { return cardType; } public void setCardType(String cardType) { this.cardType = cardType; } public String getGroupType() { return groupType; } public void setGroupType(String groupType) { this.groupType = groupType; } } 

xml文件:

   

解析网络json数据,模拟美团界面显示相关内容就给大家介绍到这里,希望对大家有所帮助。

接着给大家介绍模拟json数据解析格式

 // String response = // "{\"code\":\"1\",\"desc\":\"success\",\"data\":{\"showCount\":\"10\",\"totalCount\":\"1\",\"totalPage\":\"1\",\"currPage\":\"1\",\"offset\":\"0\"},\"apps\":[" // + // "{\"id\":1,\"status\":\"1\",\"url\":\"www.qq.com\",\"rank\":\"1\",\"title\":\"QQ\",\"createtime\":\"1325088000000\",\"updatetime\":\"1325088000000\",\"remarks\":\"??\",\"intro\":\"酷我音乐2012是酷我音乐专为android平台量身定做的专业在线音乐播放\",\"isusable\":\"1\",\"isjoint\":\"1\",\"micon\":\"http://www.51anzhuo.com.cn/upload/widget/splidapps/m/2011-10/vapk_1.jpg-600\",\"appcount\":\"20\",\"storename\":\"anzhuo\"}," // + // "{\"id\":2,\"status\":\"1\",\"url\":\"www.wabang.com\",\"rank\":\"1\",\"title\":\"web\",\"createtime\":\"1325606400000\",\"updatetime\":\"1325606400000\",\"remarks\":\"??\",\"intro\":\"正点闹钟,基本上其他闹钟满足不了的功能都涵盖了\",\"isusable\":\"1\",\"isjoint\":\"1\",\"micon\":\"http://www.51anzhuo.com.cn/upload/widget/splidapps/m/2011-10/vapk_1.jpg-600\",\"appcount\":\"20\",\"storename\":\"anzhuo\"}]}"; // }

以上就是Json数据解析模拟美团界面显示的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动