2016-01-27 25 views
1

如何使用andorid從json響應獲取唯一結果。您好,我需要從json webservice中獲取數據,我已經讀取了json中的所有數據。但我需要存儲json的獨特價值。使用android找到json的唯一數據使用android

是否有可能從json獲取唯一值?

+0

顯示迄今爲止完成的代碼和示例'JSON'。 –

+0

json中的值是什麼? – Manish

+0

這裏是我的示例JSON代碼{ lastyear:[ { 命令: 「96 36 08」, 年: 「2015」, 文字: 「否」 }, { 命令: 「03 59 03」, 年: 「2014」, 文字: 「否」 }, { 命令: 「16 50 58」, 年: 「2014」, 文字: 「否」 }]} - 我需要的價值year as - OUTPUT - {2015,2014} – arun

回答

0

請試試這個代碼

private void readJson(JSONObject jobj) { 
    ArrayList<String> list=new ArrayList<String>(); 
    JSONArray jsonArray = jobj.getJSONArray("lastyear"); 
    for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject obj = jsonArray.getJSONObject(i); 
     String year=obj.getString("year"); 
     if (!list.contains(year)) { 
      list.add(year); 
     } 
    } 
    System.out.println("FirstActivity.readJson()"+list); 
} 
+0

輸出是 - {2015,2014,2014} – arun

+0

需要從json中找到唯一值 – arun

+0

你是什麼意思b y獨特? – odemolliens

1

首先,JSON是malformated:

{ "lastyear": [ { "order": "96 36 08", "year": "2015", "Text": "No" }, { "order": "03 59 03", "year": "2014", "Text": "No" }, { "order": "16 50 58", "year": "2014", "Text": "No" } ]} 

解析這個數組,你需要實現這樣的

import org.json.*; 
import java.util.ArrayList; 

public class MyObject { 

private ArrayList<Lastyear> lastyear; 


public MyObject() { 

} 

public MyObject (JSONObject json) { 


    this.lastyear = new ArrayList<Lastyear>(); 
    JSONArray arrayLastyear = json.optJSONArray("lastyear"); 
    if (null != arrayLastyear) { 
     int lastyearLength = arrayLastyear.length(); 
     for (int i = 0; i < lastyearLength; i++) { 
      JSONObject item = arrayLastyear.optJSONObject(i); 
      if (null != item) { 
       this.lastyear.add(new Lastyear(item)); 
      } 
     } 
    } 
    else { 
     JSONObject item = json.optJSONObject("lastyear"); 
     if (null != item) { 
      this.lastyear.add(new Lastyear(item)); 
     } 
    } 


} 

public ArrayList<Lastyear> getLastyear() { 
    return this.lastyear; 
} 

public void setLastyear(ArrayList<Lastyear> lastyear) { 
    this.lastyear = lastyear; 
} 



} 

和子對象:

import org.json.*; 


public class Lastyear { 

private String order; 
private String year; 
private String text; 


public Lastyear() { 

} 

public Lastyear (JSONObject json) { 

    this.order = json.optString("order"); 
    this.year = json.optString("year"); 
    this.text = json.optString("Text"); 

} 

public String getOrder() { 
    return this.order; 
} 

public void setOrder(String order) { 
    this.order = order; 
} 

public String getYear() { 
    return this.year; 
} 

public void setYear(String year) { 
    this.year = year; 
} 

public String getText() { 
    return this.text; 
} 

public void setText(String text) { 
    this.text = text; 
} 



} 

如何使用它:

MyObject object = new MyObject(new JSONObject("YOUR_JSON")); 
//Verifiy if object.getLastyear != null 
int sizeList = object.getLastyear().size; 

for(int i = 0; i < sizeList;i++){ 
    LastYear lastYear = object.getLastyear().get(i) 
    Log.e("App",lastYear.getYear); 
} 

只具有獨特的價值,你可以使用:

private static String[] arrRemove(String[] strArray) { 
    Set<String> set = new HashSet<String>(); 
    set.addAll((List<String>) Arrays.asList(strArray)); 
    return (String[]) set.toArray(new String[set.size()]); 
} 
1

解析JSON成Java,然後用HashSet yearHashSet來存儲您的年值。

遍歷您的數組,然後將其存儲在yearHashSet

最後你將只有獨特的年份值。

相關問題