0

I use gson to read my json from mysql. but when i run app it return value null. i dont know what about error, because when i run app in local with the the same mysql it's working. But when i run in host, It return null. Please help me!

{"group":
[{"category_id":"15","title":"Zing card - Zing xu"},
{"category_id":"14","title":"Th\u1ebb Gate - FPT"},
{"category_id":"20","title":"Vcoin - VTC - Audition"},
{"category_id":"21","title":"Garena"},
{"category_id":"32","title":"Mobay card"},
{"category_id":"33","title":"BIT Card"},
{"category_id":"34","title":"Oncash"}],
"product":
[
{"id":"39","group_id":"22","name":"Oncash","price":{"USD":9,"AUD":12.756909992913,"VND":195000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/oncach-e3bb9fa75d.gif","sku":"ONCASH200"},
{"id":"87","group_id":"33","name":"TH\u1eba BIT 5 TRI\u1ec6U","price":{"USD":252.42,"AUD":357.7888022679,"VND":4950000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/uwrki7jx-6198ed1975.gif","sku":"Bit5M"},
{"id":"88","group_id":"33","name":"TH\u1eba BIT 2 TRI\u1ec6U","price":{"USD":100.98,"AUD":143.13253012048,"VND":1980000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/91intahd-b42a80c01d.gif","sku":"Bit2M"},
{"id":"89","group_id":"33","name":"TH\u1eba BIT 1 TRI\u1ec6U","price":{"USD":50.48,"AUD":71.552090715804,"VND":990000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/nwd03knt-264a8d02fe.gif","sku":"Bit1M"},
{"id":"92","group_id":"33","name":"TH\u1eba BIT 500K","price":{"USD":25.23,"AUD":35.761871013466,"VND":495000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/8hxdajdl-9c8001602e.gif","sku":"Bit500K"},
{"id":"90","group_id":"33","name":"TH\u1eba BIT 200K","price":{"USD":10.08,"AUD":14.287739192062,"VND":198000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/ql3cn6iu-b4d8c3b407.gif","sku":"Bit200K"},
{"id":"91","group_id":"33","name":"TH\u1eba BIT 100K","price":{"USD":5.03,"AUD":7.1296952515946,"VND":100000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/oupebhyo-0a61ca65b2.gif","sku":"Bit100K"},
{"id":"93","group_id":"33","name":"TH\u1eba BIT 50K","price":{"USD":2.69,"AUD":3.8128986534373,"VND":50000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/zvznjqnz-52c80ccfe6.gif","sku":"Bit50K"},
{"id":"121","group_id":"33","name":"Th\u1ebb BIT 20k","price":{"USD":1.06,"AUD":1.5024805102764,"VND":20000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/the-bit-20k-6b4035c02d.gif","sku":"Bit20K"},
{"id":"80","group_id":"32","name":"TH\u1eba MOBAY 500K","price":{"USD":25.23,"AUD":35.761871013466,"VND":495000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/u5jywcz0-55285adfd7.gif","sku":"Mobay500K"},
{"id":"83","group_id":"32","name":"TH\u1eba MOBAY 200K","price":{"USD":10.08,"AUD":14.287739192062,"VND":198000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/db8f1s3y-170821fbe1.gif","sku":"Mobay200K"},
{"id":"82","group_id":"32","name":"TH\u1eba MOBAY 100K","price":{"USD":5.03,"AUD":7.1296952515946,"VND":100000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/57mzcwfk-40f4d60542.gif","sku":"Mobay100K"},
{"id":"85","group_id":"32","name":"TH\u1eba MOBAY 50K","price":{"USD":2.69,"AUD":3.8128986534373,"VND":50000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/hf8jilab-11ed516444.gif","sku":"Mobay50K"},
{"id":"84","group_id":"32","name":"TH\u1eba MOBAY 20K","price":{"USD":1.06,"AUD":1.5024805102764,"VND":20000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/pvrh3jey-dd0894e849.gif","sku":"Mobay20K"},
{"id":"53","group_id":"20","name":"Vcoin 200k","price":{"USD":10.08,"AUD":14.287739192062,"VND":198000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/v200-61d2763add.gif","sku":"VNS-VCOIN200K"},
{"id":"37","group_id":"20","name":"Vcoin 20k","price":{"USD":1.06,"AUD":1.5024805102764,"VND":20000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/v20-e0f120eefd.gif","sku":"vcoin20k"},
{"id":"118","group_id":"20","name":"Vcoin 1 tri\u1ec7u","price":{"USD":50.48,"AUD":71.552090715804,"VND":990000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/rpwzfkfy-655e715791.gif","sku":"VCOIN1TRIEU"},
{"id":"45","group_id":"14","name":"Gate 5 tri\u1ec7u","price":{"USD":252.42,"AUD":357.7888022679,"VND":4950000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/gate5trieu-c43aa69716.gif","sku":"GATE5000k"},
{"id":"44","group_id":"14","name":"Gate 2 tri\u1ec7u","price":{"USD":100.98,"AUD":143.13253012048,"VND":1980000},"images":"http:\/\/vnsupermark.com\/uploads\/catalog\/gate2trieu-091d584fce.gif","sku":"thegate2trieu"}
]}

Function return myjson

public ResListProduct getListProducts(Context context) {
        Gson gson = new Gson();
        ResListProduct resListProduct = null;
        resListProduct = new ResListProduct();

        try {

            String urlApi = Store.getInstances(context).getA();
            // URL

            HashMap<String, String> params = new HashMap<String, String>();
            int i = MainActivity.getVariable();
            // all product

            if (i == 1) {
                params.put("command", "get_products");
            }
            if (i > 1) {
                ArrayList<String> s = new ArrayList<String>();
                s = MainActivity.getnamegrouptrem();
                for (int j = 0; j < i - 1; j++) {
                    String[] titleActionbars = s.toArray(new String[s.size()]);
                    params.put("command", "get_product");
                    params.put("cagory", titleActionbars[j]);
                }

                // if (i == 9) {
                // params.put("command", "get_product");
                // params.put("cagory", String.valueOf(21));
                // }// test autogen memu
            }

            InputStream stream = retrieveStream(urlApi, params, false, null,
                    null);
            Reader reader = new InputStreamReader(stream);
            //Printf JSON
//          BufferedReader in = new BufferedReader(reader);
//          String read;
//          while ((read = in.readLine()) != null) {                
//              System.out.println("JSON" + read);
//          }



            // parse json to get list product
            resListProduct = gson.fromJson(reader, ResListProduct.class);



        } catch (Exception e) {
            sendException(context,
                    "getListProduct: " + Log.getStackTraceString(e));
        }

        return resListProduct;
    }

class object

    public class ResListProduct {
        @SerializedName("product")
        private List<Product> products;
        @SerializedName("group")
        private List<GroupProduct> groups;

        public ResListProduct() {
        }

        public List<Product> getProducts() {
            return products;
        }

        public List<GroupProduct> getGroups() {
            return groups;
        }

    }

public class Product implements Serializable{
    private static final long serialVersionUID = 6061052006970796100L;

    @SerializedName("id")
    private String idProduct;
    @SerializedName("group_id")
    private String groupId;
    @SerializedName("name")
    private String nameProduct;
    @SerializedName("price")
    private Price priceProduct;
    @SerializedName("images")
    private String urlImagesProduct;
    @SerializedName("sku")
    private String skuProduct;
    @SerializedName("names")
    private String names;

    // quantity for each product
    private int quantity;

    // title group product
    private String titleGroup;

    public Product(String titleGroup) {
        this.titleGroup = titleGroup;
    }

    public String getIdProduct() {
        return idProduct;
    }

    public String getGroupId() {
        return groupId;
    }

    public String getNameProduct() {
        return nameProduct;
    }

    public Price getPriceProduct() {
        return priceProduct;
    }

    public String getUrlImagesProduct() {
        return urlImagesProduct;
    }

    public String getSkuProduct() {
        return skuProduct;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public String getTitleGroup() {
        return titleGroup;
    }

    public String getNames() {
        return names;
    }

    public void setNames(String names) {
        this.names = names;
    }


}

public class GroupProduct {
    @SerializedName("category_id")
    public String groupId;
    @SerializedName("title")
    public String name;

    public String getName() {
        return name;
    }

    public GroupProduct() {
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }


}
tony Hoang
  • 33
  • 6

1 Answers1

0

Does the accepted answer here help you? Basically it States that the stream is consumed twice and thus the reader object doesn't have anything in it to parse. Parsing json directly using input stream

Community
  • 1
  • 1
amosli
  • 41
  • 4
  • yes, but when i run the same data in host, It's working. i have read the json ok, but when i parse, it return to null. – tony Hoang Apr 08 '16 at 17:27