2

在 Android 中从 PHP 执行 HTTP 发布后,我得到以下响应。

new Array("1:Excellent","2:Good","3:Average","4:Not good","5:Disappointing")

我想将此结果解析为字符串数组,以便可以用这些值填充微调器。

4

3 回答 3

0

我没有看到可以采用数组的字符串构造函数,但可以查看 Java String 文档。您可以检查数组的大小,创建一个该大小的字符串数组,然后通过逐个循环值手动从数组复制到字符串数组。我对从 Array 对象进行复制并不熟悉,但看起来你会得到对象并将类型转换为字符串。另外我不确定我是否在 java 集合中看到了 Array,我使用了几种语言,所以如果你还没有设法将数据放入 java 对象中,但这还不适用。

于 2013-05-19T10:24:14.987 回答
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+ 获得,您可以在此处找到文档。您可以在您的 Android 应用程序中包含 javax.script,您可以在此处找到源代码

于 2013-05-19T10:35:24.827 回答
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() 方法中使用它

于 2013-05-19T10:38:00.687 回答