and*_*nia 52 java android json
我想问一个关于将a转换jsonArray为StringArrayon的问题Android.这是我jsonArray从服务器获取的代码.
try {
DefaultHttpClient defaultClient = new DefaultHttpClient();
HttpGet httpGetRequest = new HttpGet("http://server/android/listdir.php");
HttpResponse httpResponse = defaultClient.execute(httpGetRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(),"UTF-8"));
String json = reader.readLine();
//JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = new JSONArray(json);
Log.d("", json);
//Toast.makeText(getApplicationContext(), json, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这就是JSON.
[
{"name": "IMG_20130403_140457.jpg"},
{"name":"IMG_20130403_145006.jpg"},
{"name":"IMG_20130403_145112.jpg"},
{"name":"IMG_20130404_085559.jpg"},
{"name":"IMG_20130404_113700.jpg"},
{"name":"IMG_20130404_113713.jpg"},
{"name":"IMG_20130404_135706.jpg"},
{"name":"IMG_20130404_161501.jpg"},
{"name":"IMG_20130405_082413.jpg"},
{"name":"IMG_20130405_104212.jpg"},
{"name":"IMG_20130405_160524.jpg"},
{"name":"IMG_20130408_082456.jpg"},
{"name":"test.jpg"}
]
Run Code Online (Sandbox Code Playgroud)
如何将我已经获得的jsonArray转换为StringArray,以便我可以像这样得到StringArray:
array = {"IMG_20130403_140457.jpg","IMG_20130403_145006.jpg",........,"test.jpg"};
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助 :)
Saa*_*sad 65
看看这个教程 也可以解析上面的json之类的
JSONArray arr = new JSONArray(yourJSONresponse);
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr.length(); i++){
list.add(arr.getJSONObject(i).getString("name"));
}
Run Code Online (Sandbox Code Playgroud)
小智 20
最简单和正确的代码是:
public static String[] toStringArray(JSONArray array) {
if(array==null)
return null;
String[] arr=new String[array.length()];
for(int i=0; i<arr.length; i++) {
arr[i]=array.optString(i);
}
return arr;
}
Run Code Online (Sandbox Code Playgroud)
使用List<String>不是一个好主意,因为你知道数组的长度.观察它arr.length在for条件中使用以避免调用方法,即array.length()在每个循环上.
dre*_*ore 15
String[] arr = jsonArray.toString().replace("},{", " ,").split(" ");
Run Code Online (Sandbox Code Playgroud)
public static String[] getStringArray(JSONArray jsonArray) {
String[] stringArray = null;
if (jsonArray != null) {
int length = jsonArray.length();
stringArray = new String[length];
for (int i = 0; i < length; i++) {
stringArray[i] = jsonArray.optString(i);
}
}
return stringArray;
}
Run Code Online (Sandbox Code Playgroud)
您可以循环创建String
List<String> list = new ArrayList<String>();
for (int i=0; i<jsonArray.length(); i++) {
list.add( jsonArray.getString(i) );
}
String[] stringArray = list.toArray(new String[list.size()]);
Run Code Online (Sandbox Code Playgroud)
正在尝试相同的场景之一,但发现了一种不同且简单的解决方案将 JSONArray 转换为 List。
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
String jsonStringArray = "[\"JSON\",\"To\",\"Java\"]";
//creating Gson instance to convert JSON array to Java array
Gson converter = new Gson();
Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = converter.fromJson(jsonStringArray, type );
Run Code Online (Sandbox Code Playgroud)
试一下
| 归档时间: |
|
| 查看次数: |
173163 次 |
| 最近记录: |