2011-12-09 38 views
0

我在解析JSON時遇到了問題。我有一個字符串,例如,在android中解析JSON數據

String result = "[{"id":"1","brand_name":"Unilever","brand_image":"collaboration_2.jpg","brand_description":"Unilever is the world's leading company and blah blah ","is_active":"1"},{"id":"2","brand_name":"Engro","brand_image":"people-icon-in-vector-format14.jpg","brand_description":"Engro is another brand and blah blah blah blah\r\n","is_active":"1"}]"; 

這裏試圖碼我努力,但得到空指針異常

String brands[] = null; 

JSONArray data = new JSONArray(result); 

for(int j=0; j<data.length();j++){ 
    brands[j] = data.getJSONObject(j).getString("brand_name"); 
} 

回答

3

我不是一個Java的傢伙。看來,我認爲你應該初始化 品牌[]在使用前變量。

在調用方法之前,還要檢查變量數據爲空& data.getJSONObject(j)。

+0

你是正確的。我建議OP使用'ArrayList '和'add()'方法。 –

0

我曾嘗試解析由我的web服務返回的JSON字符串。下面是我做的:

我從Web服務得到的迴應是:

{ 「checkrecord」:[{ 「rollno」: 「ABC2」, 「百分比」:40, 「參加」 :12, 「錯過」:34}], 「表1」:[]}

爲了解析我做了以下內容:

JSONObject jsonobject = new JSONObject(result); 
    JSONArray array = jsonobject.getJSONArray("checkrecord"); 
    int max = array.length(); 

for (int j = 0; j < max; j++) 
{ 
    JSONObject obj = array.getJSONObject(j); 
    JSONArray names = obj.names(); 


for (int k = 0; k < names.length(); k++) 
{ 
    String name = names.getString(k); 
    String value= obj.getString(name); 

} 

} 

我的JSONObject是這樣的:

{ 「表1」:[], 「checkrecord」:[{ 「遺漏」:34, 「出席」:12, 「百分比」:40 「rollno」: 「ABC2」}]}

您需要根據您的代碼和要求進行修改。

希望它可以幫助

乾杯