2015-08-14 108 views
0

我有這json,我把裏面一個arrayList(我解析JSON),和這個arrayList我放在一個方法來顯示佈局中的數據。如果我在數據庫中放置更多數據,他會在我的佈局中添加更多行。如何獲取內部具有json元素的ArrayList的元素?

{ 
"Car": [ 
    { 
    "UID": "01", 
    "Name": "Ferrari", 
    "Description": "\"This a red car...\"", 
    }, 
    { 
    "UID": "02", 
    "Name": "BMW", 
    "Description": "\"Good car\"", 
    }, 
] 
} 

現在,我想顯示在佈局這一元素,但我不知道我怎樣才能得到它....我試圖做這樣的事情,但它不工作。向我顯示行但不包含元素的內容。請注意,JSON通過ArrayList的汽車去

private void addCarInView (ArrayList<String> cars) { 
. 
. 
. 
    CarUID.setText(cars.get(0)); 
    CarName.setText(cars.get(1)); 
    CarDescription.setText(cars.get(2)); 
} 

感謝

+0

是不一樣的問題。我解析了JSON,並將這個JSON元素放入了ArrayList中。現在,我想知道如何從arrayList中獲取此元素以顯示在視圖中 – Simpson

+0

爲什麼將它們作爲'String'?創建一個對象一個存儲UID,每個json對象的名稱和描述,然後把這些對象放到你的'ArrayList' –

+0

你能告訴我一些簡短的代碼,我該怎麼做? – Simpson

回答

3

而是在你ArrayList存儲String創建另一個Object這樣的:

public class Car{ 

    public String UID; 
    public String description; 
    public String name; 

public Car(,String name, String description, String UID){ 
    this.name = name; 
    this.description = description; 
    this.UID = UID; 
    } 
} 

然後當你解析你的JSON添加Car給你ArrayList

JSONObject jObject = new JSONObject(yourJson); 
JSONArray jArray = jObject.getJSONArray("Car"); 

for(int i = 0 ;i<jArray.size();i++){ 
JSONObject item = jArray.getJsonObject(i); 
yourArrayList.add(new Car(item.getString("Name"),item.getString("Description"),item.getString("UID"))); 
} 

,然後輕鬆地設置您的TextView這樣的:

Car car = youtArray.get(i); 
CarUID.setText(car.UID); 
CarName.setText(car.name); 
CarDescription.setText(car.description); 
+0

我想在最後一部分,我必須做一個循環:for(int i = 0; i carArray;和我在控制檯中的這個錯誤字符串不能在 – Simpson

+0

強制如果我把arrayList carArray;我有類型不匹配:無法在此行中將Object轉換爲Car Car car = carArray.get(i); – Simpson

+0

'不能從Object轉換到Car'你的數組應該是這樣的'ArrayList ' –