0

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

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

String[] path= new String[5];

这是 JSON 部分:

类加载路径扩展 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() 获取数组大小。知道如何实现这一点吗?

4

2 回答 2

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);
         }

如果您使用ArrayListString 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));
         }
于 2013-01-06T07:38:25.630 回答
-1

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

于 2013-01-06T07:41:31.100 回答