0

Json値を取得する方法を知りたいのですが(以下からJSOn合計に追加できるように製品の「価格」を取得したいと思います。どうもありがとうございました。

{ "StatusCode": 0
, "StatusInfo": "Processed and Logged OK"
, "PageNumber": 0
, "TotalPageCount": 1
, "TotalProductCount": 1
, "PageProductCount": 1
, "Products": [
  { "BaseProductId": "54158094"
  , "EANBarcode": "3068320055008"
  , "CheaperAlternativeProductId": ""
  , "HealthierAlternativeProductId": ""
  , "ImagePath": "http://img.tesco.com/Groceries/pi/008/3068320055008/IDShot_90x90.jpg"
  , "MaximumPurchaseQuantity": 99
  , "Name": "UNAVAILABLE: Evian Natural Mineral Water 500 Ml"
  , "OfferPromotion": ""
  , "OfferValidity": ""
  , "OfferLabelImagePath": ""
  , "Price": 0.51
  , "PriceDescription": "(Unavailable)"
  , "ProductId": "258247301"
  , "ProductType": "QuantityOnlyProduct"
  , "UnitPrice": 0.004
  , "UnitType": "100ml" } ] }
4

2 に答える 2

0

Priceタグの値はint2倍ではないのでdouble、必要に応じて、を使用してくださいint

次にjsonobjectからですが、 値getIntが原因で..を返します。00.5

         try {
                    String str="{ \"StatusCode\": 0....";
            JSONObject objJsonObject = new JSONObject(str);
            JSONArray array = objJsonObject.getJSONArray("Products");

               Double d =array.getJSONObject(0).getDouble("Price");
               System.out.print(d);
            }

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2012-04-06T10:43:42.207 に答える
0

JSONObject.getDouble()メソッドまたはメソッドのいずれかを使用できますJSONObject.getInt()

JSONObject obj = new JSONObject("{ \"StatusCode\": 0, \"StatusInfo\": \"Pr...");

JSONArray products = obj.getJSONArray("Products");
JSONObject prod = products.getJSONObject(0);

double price = prod.getDouble("Price");

価格を合計するには、JSONArrayインスタンスをループするだけです。

double sum = 0.0;
for(int i = 0; i < products.length(); i++) {
    sum += products.getJSONObject(i).getDouble("Price");
}

...。

于 2012-04-06T10:41:09.183 に答える