本帖最后由 jgszhuzhu 于 2012-08-14 15:44:01 编辑

解决方案 »

  1.   

    给一个数据的sample data看看
      

  2.   

    我主要是看对于数据设置有没有区别   {"error_message":"","category":"","type":"\u7b7e\u7ea6\u5546\u5bb6","count":"1000","nearby":[{"id":"43479","title":"\u7687\u6d3e\u9152\u5e84","address":"\u6df1\u5733\u5e02\u798f\u7530\u533a\u6df1\u5357\u5927\u90536025\u53f7\u82f1\u9f99\u5927\u53a6\u9996\u5c42","telephone":"0755-33980136","imgurl":"http:\/\/****.com\/images\/pub\/def_sp.jpg","distance":"564\u7c73","discountType":"\u7b7e\u7ea6\u5546\u5bb6","location":{"x":114.02825927734,"y":22.540784835815}},是不是这两种对数据的设置有出入呢
      

  3.   

    在adater里面取数据的时候发现取的总是第一个
      

  4.   


    package com.dld.protocol.json;import android.graphics.Shader.TileMode;import com.dld.android.util.LogUtils;
    import com.dld.coupon.util.StringUtils;import java.io.Serializable;
    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Vector;import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;/**
     * 打折detail
     * 
     * @author dld
     * 
     */
    public class CouponDetail extends JsonBean implements Detail, Serializable { private static final long serialVersionUID = 1L;
    public String address;
    public String bank;
    public List<BankCouponDetail> banks = new ArrayList<BankCouponDetail>();
    public String bizcode;
    public String branch_name;
    public String bus_route;
    public String business_hours;
    public String charge_type;
    public String cityName;
    public int cost;
    public int dbId;
    public String distance;
    public String district;
    public String district_name;
    public String feature;
    public List<GroupDetail> groups = new ArrayList<GroupDetail>();
    public String id;
    public String introduction;
    public String land;
    public int likes;
    public String name = "";
    public int parking;
    public ArrayList<Phone> phones = new ArrayList<Phone>();
    public double poix;
    public double poiy;
    public int private_room;
    public String province_name;
    public String recommendation;
    public int reservation;
    public int seqnum;
    public String service_mask;
    public int shop_id;
    public String short_name;
    public String special_offer;
    public String style;
    public String telno;
    public String ticket_price;
    public List<Ticket> tickets = new ArrayList<Ticket>();
    public String trade_name;
    public String wl_discount;
    public String x;
    public String y;
    public String tel;// mirror新添加字段 public String getTel() {
    return tel;
    } public void setTel(String tel) {
    this.tel = tel;
    } // mirror生成tel get set方法 public String shopid;
    public String shopname;
    public String catname;
    public String discount;
    public String rank; public String disid;
    public String title;
    public String image;
    public String description;....... get  set 方法

    // xml解析信息
    public static Vector<CouponDetail> fromXmlToAdroundInfo(Element root) {
    System.out.println(1);
    Vector<CouponDetail> list = new Vector<CouponDetail>(50);
    NodeList nlist = root.getElementsByTagName("result");
    for (int i = 0; i < nlist.getLength(); i++) {
    list.add(fromNode(nlist.item(i))); // System.out.println("add"+fromNode(nlist.item(i)).getAddress()+"街店名字"+fromNode(nlist.item(i)).getShopname()+"街店坐标"+fromNode(nlist.item(i)).x+":"+fromNode(nlist.item(i)).y);
    }
    // System.out.println("list"+list.toString());
    return list;
    } private static CouponDetail fromNode(Node n) {
    CouponDetail ad = new CouponDetail();
    try {
    Class cls = ad.getClass();
    for (int i = 0; i < n.getChildNodes().getLength(); i++) {
    String fieldname = n.getChildNodes().item(i).getNodeName();
    Field field = cls.getDeclaredField(fieldname);
    field.set(ad, n.getChildNodes().item(i).getFirstChild()
    .getNodeValue()); // System.out.println("field"+field.toString());
    }
    } catch (Exception e) {
    // e.printStackTrace();
    }
    return ad;
    } public static Vector<CouponDetail> JsonParseAround(String string) {
    // System.out.println(string);
    Vector<CouponDetail> list = new Vector<CouponDetail>();
    try { JSONObject object = new JSONObject(string);
    count = object.getString("count");
    type = object.getString("type");
    JSONArray jsonArray = (JSONArray) object.get("nearby"); CouponDetail couponDetail = new CouponDetail(); for (int i = 0; i < jsonArray.length(); i++) { // 解析对象
    JSONObject detailObject = jsonArray.getJSONObject(i);
    couponDetail.id = detailObject.getString("id");
    couponDetail.title = detailObject.getString("title");
    System.out.println(couponDetail.title);
    couponDetail.address = detailObject.getString("address");
    couponDetail.telno = detailObject.getString("telephone");
    couponDetail.imgurl = detailObject.getString("imgurl");
    couponDetail.distance = detailObject.getString("distance");
    // 此处distance是1米,包含“米”这个字
    couponDetail.discountType = detailObject
    .getString("discountType");
    JSONObject location = detailObject.getJSONObject("location");
    couponDetail.x = location.getString("x");
    couponDetail.y = location.getString("y");
    list.add(couponDetail);
    } } catch (JSONException e) {
    System.out.println("---");
    // TODO Auto-generated catch block
    e.printStackTrace();
    } return list;
    }}
      

  5.   

     CouponDetail couponDetail = new CouponDetail();
     for (int i = 0; i < jsonArray.length(); i++) {
    ............
     list.add(couponDetail);
    }
    看出问题了吗??
      

  6.   


    知道是CouponDetail couponDetail = new CouponDetail();
    应该写到循环里面去,昨天晚上同学帮忙看出来了,不过还是谢谢你,我是初次在公司里面写项目,不过还是要感谢你