如何使用andorid從json響應獲取唯一結果。您好,我需要從json webservice中獲取數據,我已經讀取了json中的所有數據。但我需要存儲json的獨特價值。使用android找到json的唯一數據使用android
是否有可能從json獲取唯一值?
如何使用andorid從json響應獲取唯一結果。您好,我需要從json webservice中獲取數據,我已經讀取了json中的所有數據。但我需要存儲json的獨特價值。使用android找到json的唯一數據使用android
是否有可能從json獲取唯一值?
請試試這個代碼
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);
}
首先,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()]);
}
解析JSON成Java,然後用HashSet yearHashSet
來存儲您的年值。
遍歷您的數組,然後將其存儲在yearHashSet
。
最後你將只有獨特的年份值。
顯示迄今爲止完成的代碼和示例'JSON'。 –
json中的值是什麼? – Manish
這裏是我的示例JSON代碼{ lastyear:[ { 命令: 「96 36 08」, 年: 「2015」, 文字: 「否」 }, { 命令: 「03 59 03」, 年: 「2014」, 文字: 「否」 }, { 命令: 「16 50 58」, 年: 「2014」, 文字: 「否」 }]} - 我需要的價值year as - OUTPUT - {2015,2014} – arun