在Android中从PHP执行HTTP发布后,我收到以下响应。
new Array("1:Excellent","2:Good","3:Average","4:Not good","5:Disappointing")
我想将此结果解析为字符串数组,以便我可以使用这些值填充微调器。
答案 0 :(得分:0)
我没有看到可以接受数组但可能检查Java String文档的字符串构造函数。您可以检查Array的大小,创建该大小的字符串数组,然后通过值的循环值手动将Array从Array复制到String数组。我不熟悉从Array对象复制,但似乎你会得到对象和类型转换为字符串。另外我不确定我在java集合中看到了Array,我使用了几种语言,所以如果你还没有设法将数据放到java对象中,那么这还不适用。
答案 1 :(得分:0)
您可以使用ScriptEngine
将引擎设置为Javascript,您的代码不会在JS中引发任何错误。
ScriptEngine js = new ScriptEngineManager().getEngineByName("JavaScript").getEngineByName("JavaScript");
String expression = ...; // Get the expression from the web server
String ss[] = (String[]) js.eval(expression);
ScriptEngine可从JDK6 +获得,您可以找到文档here。您可以在Android应用中添加javax.script,您可以找到该here
的来源答案 2 :(得分:0)
private void parseJson() {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG)
.show();
}
// response to inputstream
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "UTF-8"));
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG)
.show();
}
// to string
try {
JSONArray jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
b.add(json_data.getString("Name"));
}
}
声明必要的变量!在asynctask
的doInBackGround()方法中使用它