Android的在线解析Json

 前提是引用Volley的异步机制,引入它的jar包

 

public void getJSONByVolley() {

    //mContext为上下文,

        RequestQueue requestQueue = Volley.newRequestQueue(mContext);

        String JSONDataUrl = "http://sjshop.easyder.com/app/order_index/getCart?buyer_id=511";

        final ProgressDialog progressDialog = ProgressDialog.show(mContext, "正在下载", "Loading......");

        progressDialog.setCancelable(true);//progressDialog可以取消

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(

                Request.Method.GET,

                JSONDataUrl,

                null,

                new Response.Listener<JSONObject>() {





                    @Override

                    public void onResponse(JSONObject response) {

                        try {

                            getcartJson(response);

                        } catch (Exception e) {

                            e.getMessage();

                        }

                        if (progressDialog.isShowing() && progressDialog != null) {

                            progressDialog.dismiss();

                        }

                    }

                },

                new Response.ErrorListener() {

                    @Override

                    public void onErrorResponse(VolleyError arg0) {

                        System.out.println("sorry,Error");

                    }

                });

        requestQueue.add(jsonObjectRequest);

        Log.i(TAG, "shopBeanList ---->解析完Json   ");



    }

    //getcart的网络解析,参数-->JSONObject

    public void getcartJson(JSONObject jsonObject) {

//        创建商店列表

        List<ShopBean> shopBeanList= new ArrayList<ShopBean>();

        JSONObject objectInfo = null;

        try {

            objectInfo = jsonObject.getJSONObject("info");

            JSONArray arraygroup = objectInfo.getJSONArray("group");

            for (int i = 0; i <arraygroup.length() ; i++) {

                JSONObject item = arraygroup.getJSONObject(i);

                ShopBean shopBean = new ShopBean(item);

                shopBeanList.add(shopBean);

                Log.d(TAG, "shopBeanList-----> "+ item);

            }

        } catch (JSONException e) {

            e.printStackTrace();

        }



        if(mCallback!=null){

            mCallback.getDat(shopBeanList);

        }

    }

实体类中添加了一个JsonObject的构造函数

ShopBean实体类:

/**

 * Created by Administrator on 2015/7/19 0019.

 */

public class ShopBean {

    private int seller_uid;//店铺ID

    private String seller_name;//店铺名称

    public List<GoodsBean> goodsList;//商品信息列表



    public String getSeller_name() {

        return seller_name;

    }



    public void setSeller_name(String seller_name) {

        this.seller_name = seller_name;

    }



    public int getSeller_uid() {

        return seller_uid;

    }



    public List<GoodsBean> getGoodsList() {

        return goodsList;

    }



    public void setGoodsList(List<GoodsBean> goodsList) {

        this.goodsList = goodsList;

    }



    public void setSeller_uid(int seller_uid) {

        this.seller_uid = seller_uid;

    }



    public ShopBean() {



    }



    //构造函数,参数为JSONObject型

    public ShopBean(JSONObject jsonObject) {

        this.seller_uid = jsonObject.optInt("seller_uid");

        this.seller_name = jsonObject.optString("seller_name");

        GoodsBean goodsBean;

        JSONArray jsonArray = jsonObject.optJSONArray("goods");

        if (jsonArray != null && jsonArray.length() > 0) {

            try {

                goodsList = new ArrayList<>();

                for (int j = 0; j < jsonArray.length(); j++) {

                    goodsBean = new GoodsBean(jsonArray.getJSONObject(j));

                    goodsList.add(goodsBean);

                }

            } catch (JSONException e) {

                e.printStackTrace();

            }

        }



    }



}

GoodsBean实体类:

/**

 * Created by Administrator on 2015/7/24.

 */

public class GoodsBean {

    private int stock_id;//商品ID

    private String goods_name;//商品名称

    private int qty;//商品的星级

    private boolean is_choose;//是否选中

    private double price;//单价

    private String goods_img;//图片链接

    private String extend;//图片拓展

    private int stock_num;//商品数量

    private double goodsTotalPrice;//商品总价

    private double rate;//商品税率



    public String getGoods_name() {

        return goods_name;

    }



    public void setGoods_name(String goods_name) {

        this.goods_name = goods_name;

    }



    public int getQty() {

        return qty;

    }



    public void setQty(int qty) {

        this.qty = qty;

    }



    public boolean is_choose() {

        return is_choose;

    }



    public void setIs_choose(boolean is_choose) {

        this.is_choose = is_choose;

    }



    public double getPrice() {

        return price;

    }



    public void setPrice(double price) {

        this.price = price;

    }



    public String getGoods_img() {

        return goods_img;

    }



    public void setGoods_img(String goods_img) {

        this.goods_img = goods_img;

    }



    public String getExtend() {

        return extend;

    }



    public void setExtend(String extend) {

        this.extend = extend;

    }



    public int getStock_num() {

        return stock_num;

    }



    public void setStock_num(int stock_num) {

        this.stock_num = stock_num;

    }



    public double getGoodsTotalPrice() {

        return goodsTotalPrice;

    }



    public void setGoodsTotalPrice(double goodsTotalPrice) {

        this.goodsTotalPrice = goodsTotalPrice;

    }



    public double getRate() {

        return rate;

    }



    public void setRate(double rate) {

        this.rate = rate;

    }



    public int getStock_id() {

        return stock_id;

    }



    public void setStock_id(int stock_id) {

        this.stock_id = stock_id;

    }



    public GoodsBean(JSONObject jsonObject){

        this.stock_id = jsonObject.optInt("stock_id");

        this.goods_name = jsonObject.optString("goods_name");

        this.qty = jsonObject.optInt("qty");

        this.is_choose = jsonObject.optBoolean("is_choose");

        this.price = jsonObject.optDouble("price");

        this.goods_img = jsonObject.optString("goods_img");

        this.extend = jsonObject.optString("extend");

        this.stock_num = jsonObject.optInt("stock_num");

        this.goodsTotalPrice = jsonObject.optDouble("goodsTotalPrice");

        this.rate = jsonObject.optDouble("rate");

    }



    public GoodsBean(){



    }

    @Override

    public String toString() {

        return  "等级:" + qty + " " +

                "税率:" + rate

                ;

    }

}
View Code

 

你可能感兴趣的:(android)