我正在尝试将数据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()得到数组大小..任何想法我怎么能实现这一点?
答案 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数组