2017-06-05 1 views
0

に2つの以上の同じ値は、私は、このJSONを処理すべきスピナーに一度CAT1値を抽出すること、及び第二のスピナーでIはBOOK1を表示第スピナーの選択に基づいて、どのように存在する場合本2チェックJSON

JSON:

{ 
"library": 
[ 
{ 
    "Cat": "cat1", 
    "Book": "book1", 
    "authur": "authur1" 
}, 
{ 
    "Cat": "cat1", 
    "Book": "book2", 
    "authur": "authur2" 
}, 
{ 
    "Cat": "cat2", 
    "Book": "book3", 
    "authur": "authur3" 
} 
] 
} 
+0

*ステップ1)* JSONパーサーを使用してください。 --- *ステップ2)* Catでデータをグループ化する--- *ステップ3)*スピナー1にカテゴリを入力します。 --- *手順4)*スピナー1の値を選択したら、スピナー2に本を入力します。 ---あなたがそれについての質問があれば、各ステップは*具体的な*質問になります。 Web上ですべてのステップのコードを見つけることができます。あなたの質問は「あまりにも広すぎ」、「私のためのコードを書いてください」というように読まれます。このリクエストは間違いなくこのサイトの話題です。 – Andreas

答えて

0

あなたは、単にJSONのうち、(あなたが前にそれらを定義する必要があります)ドメインオブジェクトを作成するためのGsonまたはジャクソンのようなライブラリを使用することができます。その後、好きな値を簡単に抽出できます。

これは一例です: http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

+0

してください、 私にリンクの例を教えてもらえますか? –

+0

http://www.mkyong.com/java/how-to-convert-java-object-to-json-jackson/ – s1m0nw1

0

はあなたのJSONデータを解析し、ArrayListにそれを保存し、ArrayAdapterを使用してSpinnerでそれを取り込みます。ここで

あなたのJSONデータを解析するためのサンプルコードです:

public void parseJson() { 
    String response = "{\n" + 
      " \"library\":\n" + 
      "[\n" + 
      "{\n" + 
      " \"Cat\": \"cat1\",\n" + 
      " \"Book\": \"book1\",\n" + 
      " \"authur\": \"authur1\"\n" + 
      " },\n" + 
      " {\n" + 
      " \"Cat\": \"cat1\",\n" + 
      " \"Book\": \"book2\",\n" + 
      " \"authur\": \"authur2\"\n" + 
      " },\n" + 
      " {\n" + 
      " \"Cat\": \"cat2\",\n" + 
      " \"Book\": \"book3\",\n" + 
      " \"authur\": \"authur3\"\n" + 
      " }\n" + 
      "]\n" + 
      "}"; 

    try { 
     JSONObject mJsonObject = new JSONObject(response); 
     JSONArray libraryJsonArray = mJsonObject.getJSONArray("library"); 


     ArrayList<String> cats = new ArrayList<>(); 
     ArrayList<String> books = new ArrayList<>(); 
     ArrayList<String> authors = new ArrayList<>(); 

     // Get all jsonObject from jsonArray 
     for (int i = 0; i < libraryJsonArray.length(); i++) 
     { 
      JSONObject jsonObject = libraryJsonArray.getJSONObject(i); 

      // Cat 
      if (jsonObject.has("Cat") && !jsonObject.isNull("Cat")) { 
       cats.add(jsonObject.getString("Cat")); 
      } 

      // Book 
      if (jsonObject.has("Book") && !jsonObject.isNull("Book")) { 
       books.add(jsonObject.getString("Book")); 
      } 

      // Author 
      if (jsonObject.has("authur") && !jsonObject.isNull("authur")) { 
       authors.add(jsonObject.getString("authur")); 
      } 


      Log.d("SUCCESS", "JSON Object: " + "\nCat: " + cats.get(i) 
        + "\nBook: " + books.get(i) + "\nAuthor: " + authors.get(i)); 


      // Do something with ArrayList cats, books and authors 
     } 
    } catch (JSONException e) { 
     Log.e("FAILED", "Json parsing error: " + e.getMessage()); 
    } 
} 

はOUTPUT:

D/SUCCESS: JSON Object: 
      Cat: cat1 
      Book: book1 
      Author: authur1 

D/SUCCESS: JSON Object: 
      Cat: cat1 
      Book: book2 
      Author: authur2 

D/SUCCESS: JSON Object: 
      Cat: cat2 
      Book: book3 
      Author: authur3 
+0

はFATと考えていますが、スピナー1は常に2回でcat1を表示します。 –

関連する問題