1

ユーザーはアイテムをカートに追加でき、同時に URL が起動され、json が返されます..ユーザーは任意の数の製品を追加できます..各製品には一意の product_id があります.各製品には多くのサプライヤーを含めることができます..サプライヤーにも一意の ID がありますサプライヤ_id..カートに追加されたすべてのアイテムについて、サプライヤは少数に共通している可能性があります..カートに5つの製品があり、..supllier1(一意のIDを持つ)が3つの製品を供給し、supplier2(一意のIDを持つ)が2つの製品を供給するとします..今私は持っています配列リストに一意のsupplier_idを見つけて追加しました..各jsonオブジェクトにはpriceというフィールドがあります..一意のサプライヤの価格を追加する必要があります..2suppliersの場合、2つの別々の価格が表示されます..サプライヤー1は、彼が供給する3つの製品の価格を追加することにより)およびサプライヤー2のその他.. jsonの一部は

   {
      "BasketItemID": "4455",
      "BasketID": "11",
      "ProductID": "12909",
      "Qty": "1",
      "SupplierID": "7",
      "Code": "END10-001",
      "Name": "ENDO STOPPERS (100)",

      "Price": "5.72",
      "GST": "0.64",
      "PriceGST": "6.36",
      "Brand": "DENT AMERICA",
      "Thumbnail": null,

    },
    {
      "BasketItemID": "4464",
      "BasketID": "11",
      "ProductID": "12914",
      "Qty": "1",
      "SupplierID": "7",
      "Code": "INS52-361",
      "Name": "AMALGAM GUN CVD 45' PLASTIC",

      "Price": "17.00",
      "GST": "1.70",
      "PriceGST": "18.70",
      "Brand": "LARIDENT",
      "Thumbnail": null,

    },
    {
      "BasketItemID": "4465",
      "BasketID": "11",
      "ProductID": "13863",
      "Qty": "1",
      "SupplierID": "5",
      "Code": "9516068",
      "Name": "Tofflemire Bands #3 0015 Pkt 12",

      "Price": "2.24",
      "GST": "0.22",
      "PriceGST": "2.47",
      "Brand": "Rand",
      "Thumbnail": null,

    },

どうすれば価格を追加できますか?

4

1 に答える 1

0

問題が JSON 配列の解析に関係している場合は、こちらの例を確認してください。次に、サプライヤーでフィルタリングします。要件をより明確にしたい場合は、自由に拡張させてください.

次のようになります(テストされていません)

Integer id;
Map<Integer, Double> sums;
...
while (reader.hasNext()) {
   String name = reader.nextName();
   if (name.equals("SupplierID")) {
     id = reader.nextInt();
   } else if (name.equals("Price")) {
     if(!sums.containsKey(id)){
        sums.put(id, reader.nextDouble());
     }
     else{
       Double f = (Double) sums.get(id);
       sums.put(id, f+reader.nextDouble());
     }
   } else {
     reader.skipValue();
   }
}
于 2013-07-18T12:52:32.197 に答える