初始化JSON数据建议的数组

时间:2013-01-06 07:30:33

标签: java android arrays json

我正在尝试将数据gotton从JSON存储到正常的字符串数组。问题是我似乎无法根据JSON数据的数量初始化数组大小。

现在我声明我自己的数组大小:

String[] path= new String[5];

这是JSON部分:

类Loadpath扩展了AsyncTask {

    protected String doInBackground(String... args) {
        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        // getting JSON string from URL
        JSONObject json = jParser.makeHttpRequest(url_all_imageDB, "GET",params);

        try {
                JSONArray productObj = json.getJSONArray(TAG_IMAGEDB); // JSON Array

                // looping through All path
                for (int i = 0; i < productObj.length(); i++) {
                    JSONObject image = productObj.getJSONObject(i);
                                            path[i] = image.getString(TAG_PATH);
                }

            } else {
                displayPath.setText("No path");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

所以我的目标是从JSON.length()得到数组大小..任何想法我怎么能实现这一点?

2 个答案:

答案 0 :(得分:0)

根据JSONArray长度初始化mStrings []数组大小:

        String[] mStrings;  //<< Declare array as
        mStrings = new String[productObj.length()];  //<<initialize here

        for (int i = 0; i < productObj.length(); i++) {
            JSONObject image = productObj.getJSONObject(i);
            mStrings[i] = image.getString(TAG_PATH);
         }

如果你使用ArrayList而不是String Array来获取Jsonobject的值,那就更好了:

        ArrayList<String> mStrings=new ArrayList<String>(;
        for (int i = 0; i < productObj.length(); i++) {
            JSONObject image = productObj.getJSONObject(i);

            mStrings.add(image.getString(TAG_PATH));
         }

答案 1 :(得分:-1)

也许你可以使用List而不是String数组