0
  [  {
        "question_id": 13,
        "creation_date": 10,
        "name": " certain degrees",
        "tags": [
            "android",
            "sensor"
        ],
.....
...}

]

这是我要获取标签数组的api,标签数组仅包含索引和值,我想使用数组对象获取数组并最终存储在数组列表中,我尝试过但未能获取错误已发生。

02-20 15:45:37.323: I/System.out(1165): org.json.JSONException: Value android at 0 of type java.lang.String cannot be converted to JSONObject

谁能帮我解决这个问题。

tagarray = questionobj.getJSONArray("tags");


        for(int j=0;j<tagarray.length();j++){



//tagobject = tagarray.getJSONObject(j);//..if i comment this line the full array list is displaying but i need for each question allocated tags to display..am i clear.. 
            //if(tagobject!=null){
            tagname.add(tagarray.getString(j));
            ///tagname.add(0, null);
            //} 
        }
4

4 回答 4

0

你的 json 格式不正确试试这样;

{"question":
{"question_id": "13", 
 "name": "certain degrees", 
 "tags": [{"android":"N", "sensor":"Y"}]
 }}

您可以使用http://jsonviewer.stack.hu/,以确保更正您的 json 数据

于 2013-02-20T10:42:58.910 回答
0

尝试这个,

   ArrayList<String> list = new ArrayList<String>();

String text = "[  { \"question_id\": 13, \"creation_date\": 10, \"name\": \"certain degrees\", \"tags\": [ \"android\", \"sensor\" ] } ]";
  try {
        JSONArray jarray = new JSONArray(text);

        for (int i = 0; i < jarray.length(); i++) {
            JSONArray j_array = jarray.getJSONObject(i)
                    .getJSONArray("tags");

            for (int j = 0; j < j_array.length(); j++) {
                String str = j_array.getString(j);

                list.add(str);

            }

        }
    } catch (Exception e) {

    }
于 2013-02-20T11:35:24.693 回答
0

我建议你试试这个代码,

import org.json.JSONArray;
import org.json.JSONObject;

public class Main {

    public static void main(String[] args) {
        String text = "[  { \"question_id\": 13, \"creation_date\": 10, \"name\": \"certain degrees\", \"tags\": [ \"android\", \"sensor\" ] } ]";

        System.out.println(text);

        JSONArray jsonArray = new JSONArray(text);

        JSONObject jsonObjetc = jsonArray.getJSONObject(0);

        JSONArray tagarray = jsonObjetc.getJSONArray("tags");

        System.out.println(tagarray);

        for(int j=0;j<tagarray.length();j++){
            System.out.println(tagarray.getString(j));
        }
    }
}

祝你好运,阿伦

于 2013-02-20T10:58:19.417 回答
0

尝试这个

tagarray = questionobj.getJSONArray("tags");

    for(int j=0;j<tagarray.length();j++)
    {
        tagname.add(tagarray.getJSONObject(j).getString("android"));         
    }
于 2013-02-20T12:34:48.310 回答