2011-12-09 39 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”}]}

您需要根据您的代码和要求进行修改。

希望它可以帮助

干杯