2016-10-22 9 views
0

JSONオブジェクトからすべてのスラッシュを削除して、それを配列リストに追加しようとしています。ここで私はRegexに入力したものに関係なく見えるものです: また、角かっこや重複する文字列を削除したいが、スラッシュを削除しようとしても機能していないので、私はそれを構築しようとしています。テストと同じように、文字列内のすべてと何かを置き換えようとしましたが、何を選んでも(アルファ数値であっても)動作しません。カテゴリリスト内の項目についてJava REGEX。特定のJSONオブジェクトでリプレースできません(文字列に変換)

出力例: "[[\" 地中海\ "\ "地中海\"]、[\ "ギリシャ語\"、\ "ギリシャ語\"]]"

private static final ArrayList<String> BusinessIDList = new ArrayList<>(); 
private static ArrayList<String> RatingList = new ArrayList<>(); 
private static ArrayList<String> cityList = new ArrayList<>(); 
private static ArrayList<String> stateList = new ArrayList<>(); 
private static ArrayList<String> addressList = new ArrayList<>(); 
private static ArrayList<String> categoryList = new ArrayList<>(); 
private static ArrayList<String> phoneList = new ArrayList<>(); 
private static ArrayList<String> nameList = new ArrayList<>(); 

    private static void queryAPI(YelpAPI yelpApi, YelpAPICLI yelpApiCli) { 

    String searchResponseJSON = yelpApi.searchForBusinessesByLocation(yelpApiCli.term, yelpApiCli.location); 

    JSONParser parser = new JSONParser(); 
    JSONObject response = null; 
    try { 
     response = (JSONObject) parser.parse(searchResponseJSON); 
    } catch (ParseException pe) { 
     System.out.println("Error: could not parse JSON response:"); 
     System.out.println(searchResponseJSON); 
     System.exit(1); 
    } 


    JSONArray businesses = (JSONArray) response.get("businesses"); 

    for (int i = 0; i < businesses.size(); i++) { 
     JSONObject temp = (JSONObject) businesses.get(i); 
     JSONObject temp1 = (JSONObject) temp.get("location"); 

     BusinessIDList.add(temp.get("id").toString()); 
     RatingList.add(temp.get("rating").toString()); 
     cityList.add(temp1.get("city").toString()); 
     stateList.add(temp1.get("state_code").toString()); 
     phoneList.add(temp.get("phone").toString()); 

     String tempCat = temp.get("categories").toString(); 
     tempCat = tempCat.replaceAll("\\\\", " "); 
     categoryList.add(tempCat); 

     String tempAdr = temp1.get("address").toString(); 
     tempAdr = tempAdr.replaceAll("\\\\", " "); 
     addressList.add(tempAdr); 

     nameList.add(temp.get("name").toString()); 

    } 
+0

これを単純にしましょう。 'String t =" [[\\\ "Med \\\"、\\\ "med \\\"] "; t = t.replaceAlll( "\\\\"、 ""); System.out.println(t); ' – dlamblin

+0

あなたの問題は再現できませんが、コードは不完全で、単独では実行できません。問題を再現する[mcve]を投稿してください。 –

+0

確かに1秒、それについて申し訳ありません。 – Remixt

答えて

2

tempCatに戻り値replaceAllを割り当てていません。参照、

tempCat.replaceAll("\\\\\\\\", " "); 

tempCat = tempCat.replaceAll("\\\\\\\\", " "); 

replaceAll方法の詳細については: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)

編集:申し訳ありませんが、正しいリンクで更新を 変更してみてください。

+0

それにはシガーはありません。申し訳ありませんが、私はこれを早期に削除して、可能な解決策として試してみました。 – Remixt

関連する問題