2016-07-27 5 views
0

にJSONに私のJSONを行を削除することができますどのように私はJAVA

{ 
    "adresses": [ 
     { 
      "region": "Auvergne-Rhône-Alpes", 
      "pertinence": 0.41, 
      "cp": "73200", 
      "coordonnee": [ 
       45.6681753, 
       6.3863336 
      ], 
      "rue": "Rue Pasteur", 
      "osm_id": "8063355", 
      "pays": "France", 
      "ville": "Albertville", 
      "quartier": "Le Parstet", 
      "nom": "", 
      "secteur": "Albertville", 
      "numero": "" 
     }, 
     { 
      "region": "Auvergne-Rhône-Alpes", 
      "pertinence": 0.41, 
      "cp": "73200", 
      "coordonnee": [ 
       45.6635769, 
       6.3830012 
      ], 
      "rue": "Rue Pasteur", 
      "osm_id": "69253010", 
      "pays": "France", 
      "ville": "Albertville", 
      "quartier": "", 
      "nom": "", 
      "secteur": "Albertville", 
      "numero": "" 
     }, 
     { 
      "region": "Auvergne-Rhône-Alpes", 
      "pertinence": 0.41, 
      "cp": "73400", 
      "coordonnee": [ 
       45.7469095, 
       6.4237485 
      ], 
      "rue": "Rue Pasteur", 
      "osm_id": "170250718", 
      "pays": "France", 
      "ville": "Ugine", 
      "quartier": "", 
      "nom": "", 
      "secteur": "Albertville", 
      "numero": "" 
     } 
    ] 
} 

私は「osm_idは」変数に等しいときに住所がのいずれかを削除する必要があります。

私は、JSONをやり直したい行を削除するためにJSONをArrayList文字列に入れ始めました。 しかし、要素 "coordonnee"は配列で、私は誰ができるのか分かりません。ここで

は私の裁判:

JSONObject req = reponse.convertToJsonObject(); 
    JSONArray adresses = req.getJSONArray("adresses"); 
    ArrayList<String> tab = new ArrayList<String>(); 
    for (int i = 0; i < adresses.length(); i++) { 
    JSONObject adr = adresses.getJSONObject(i); 
    String line = adr.getString("region") + " " + adr.getDouble("pertinence") + " " 
    + adr.getString("cp") + " " + adr.getString("coordonnee") 
    + " " + adr.getString("rue") + " " + adr.getString("osm_id") + " " 
    + adr.getString("pays") + " " + adr.getString("ville") 
    + " " + adr.getString("quartier") + " " + adr.getString("nom") + " " 
    + adr.getString("secteur") + " " + adr.getString("numero"); 
    tab.add(line); 
} 

は、あなたが私を助けることができますか?

+0

はjsoup –

+0

のようなJSONパーサーを使用してみてください、あなたはhttp://stackoverflow.com/questions/15603033/removing-elements – Naveen

答えて

0

私はこれがあなたが望むことをするべきだと思います。提供された変数に一致する "osm_id"を持つアドレスはすべて除外されます。

JSONObject req = reponse.convertToJsonObject(); 
JSONArray filteredAddresses = new JSONArray(); 
String filterId = "..."; // put whatever your ID is here 

JSONArray unfilteredAddresses = req.getJSONArray("adresses"); 
for (int i = 0; i < unfilteredAddresses.length(); i++){ 
    JSONObject addressJson = unfilteredAddresses.getJSONObject(i); 
    if (!addressJson.has("osm_id") || !addressJson.getString("osm_id").equals(filterId)){ 
     filteredAddresses.put(addressJson); 
    } 
} 
req.put("adresses", filteredAddresses); 
+0

を確認しましたあなたの答えをありがとう、私は明日テストし、それが動作する場合、私はあなたを教えてくれます! – Grichka

+0

こんにちは、私はあなたのソリューションを試しましたが、 "req.getJSONArray(" adresses ")"は次のメッセージを含むeclpiseで強調表示されています: "addressJson 'のタイプを' Object 'に変更 – Grichka

+0

申し訳ありません、 'org.json'ライブラリなので少し錆びます;)私は答えを編集しました。それがあなたのために働くかどうかを確認してください。 – Ownaginatious