2017-02-21 21 views
-4

私はJsonを完全に知らないです。今私はAndroidプロジェクトで働いています。私はArrayの使い方を知っています。 AndroidプロジェクトのAssetフォルダ内にJsonファイルがあります。 と私はjsonデータから標準値だけを取り出し、それを空の配列に格納する必要があります。私のJSONデータは、私がこれを行うことができ、それを通して方法を取得することはできませんよ、配列のjson値を取得する方法

[ 
{ 
    "name":"aaa", 
    "surname":"bbb", 
    "age":"18", 
    "div":"A", 
    "standard":"7" 
}, 
{ 
    "name":"ccc", 
    "surname":"ddd", 
    "age":"17", 
    "div":"B", 
    "standard":"7" 
}, 
{ 
    "name":"eee", 
    "surname":"fff", 
    "age":"18", 
    "div":"A", 
    "standard":"8" 
}, 
{ 
    "name":"ggg", 
    "surname":"hhh", 
    "age":"17", 
    "div":"A", 
    "standard":"7" 
}, 
{ 
    "name":"sss", 
    "surname":"ddd", 
    "age":"18", 
    "div":"A", 
    "standard":"8" 
}, 
{ 
    "name":"www", 
    "surname":"ggg", 
    "age":"17", 
    "div":"A", 
    "standard":"7" 
}, 
{ 
    "name":"ggg", 
    "surname":"ccc", 
    "age":"18", 
    "div":"B", 
    "standard":"6" 
} 

] です。なぜなら、私はjsonデータの各標準をチェックして標準のvalueeを格納するために作成した配列にそれを追加しなければならないからです。その値を各satndardの値と比較することができます。したがって、ユニークな値をアレイに格納することができます。

私はこれを達成するために私が知っていない私はアンドロイドだけでなく、jsonのためです。

+0

jsonを解析/処理する方法の詳細な手順:http://stackoverflow.com/questions/9605913/how-to-parse-json-in-android –

+0

[Android Java;ローカルのJSONファイルをassetsフォルダからListViewに解析するにはどうすればいいですか?(http://stackoverflow.com/questions/19945411/android-java-how-can-i-parse-a-local-json-file-from- assets-folder-into-a-listvi) –

+0

@Jonathan私はすでにこのことをお勧めしています。しかし、私はそのようにしたくない – neeta

答えて

0

を作成するためにhttp://www.jsonschema2pojo.org/を使用することができます。

//Global Declared 
    ArrayList<String> allStanderds = new ArrayList<>(); 

    allStanderds.clear(); 
     try{ 
      JSONArray araay = new JSONArray(Your_Json_Array_String); 
      for (int i = 0; i <array.length() ; i++) { 

        JSONObject jsonObject = new array.getJSONObject(i); 

        String standard = jsonObject.getString("standard"); 

        if(!allStanderds.contains(standard)){ 
        allStanderds.add(standard); 
        } 

      } 
     }catch (Exception e) { 
     e.printStackTrace(); 
     } 

// use allStanderds ArrayList for SetAdapter for Spinner. 

コーディングハッピー> :)

+0

stsonadrdの値だけをjsonから取得し、標準のjsonデータの各固有値フォームを標準のjsonの各要素をcomaparingして作成した配列に格納し、その値だけを配列に格納します。助けてください – neeta

+0

あなたの配列から何をしたいですか?@Neha – RushDroid

+0

前に各標準値を比較して得られる標準の一意の値は、スピナーに追加されます – neeta

2

JSONを容易に解析のために使用gson

TypeToken>トークン=新しいTypeToken>(){}。 List animals = gson.fromJson(data、token.getType());

あなたはこの方法を行うことができ、ユーザクラス

public class User { 

@SerializedName("name") 
@Expose 
private String name; 
@SerializedName("surname") 
@Expose 
private String surname; 
@SerializedName("age") 
@Expose 
private String age; 
@SerializedName("div") 
@Expose 
private String div; 
@SerializedName("standard") 
@Expose 
private String standard; 

public String getName() { 
return name; 
} 

public void setName(String name) { 
this.name = name; 
} 

public String getSurname() { 
return surname; 
} 

public void setSurname(String surname) { 
this.surname = surname; 
} 

public String getAge() { 
return age; 
} 

public void setAge(String age) { 
this.age = age; 
} 

public String getDiv() { 
return div; 
} 

public void setDiv(String div) { 
this.div = div; 
} 

public String getStandard() { 
return standard; 
} 

public void setStandard(String standard) { 
this.standard = standard; 
} 

} 
0

この1

を使用してみてください。
try{ 
    String assestValue = getStringFromAssets(); 

    JSONArray arr = new JSONArray(assestValue); 

     int count = arr.length(); 
     for (int i=0; i < count; i++){ 
      JSONObject obj = arr.getJSONObject(i); 

      String name = obj.getString("name"); 
      String surname = obj.getString("surname"); 
      String age = obj.getString("age"); 
      String div = obj.getString("div"); 
      String standard = obj.getString("standard"); 

     } 

    }catch (JSONException e){ 
     e.printStackTrace(); 
    } 



public String getStringFromAssets(){ 

    String str = ""; 
    try { 
     StringBuilder buf = new StringBuilder(); 
     InputStream json = getAssets().open("contents.json");//put your json name 
     BufferedReader in = 
       new BufferedReader(new InputStreamReader(json, "UTF-8")); 


     while ((str = in.readLine()) != null) { 
      buf.append(str); 
     } 

     in.close(); 

     return str; 

    }catch (Exception e){ 
     e.printStackTrace(); 
    } 

    return str; 
} 

プログラミングをお楽しみください:)

+0

私のプログラムで最初は、標準のjsonデータに存在する各要素と比較した後、標準値を1つずつ格納する空の配列があります。その結果、私の配列にはjsonデータに存在するすべての重複値 – neeta

0

使用GSONをJSONの解析にSO関連で私の前に尋ねた質問を参照してください非常に役立つAPIに

を提供しますJSON array.GSONを解析します。今

  • 、あなたがUserEntity user=new Gson().fromJson(yourString,UserEntity.class);を使用することができます。

    アンドロイドスタジオでGsonFormatプラグインinstalll How to parse nested array through GSON

  • 0
    1. ユーザエンティティ(UserEntity.class例)を生成するためにあなたのJSON文字列を使用しますが目安になります
    2. 今、オブジェクトユーザーにjson文字列が格納されています。
    関連する問題