繁体   English   中英

使用Android读取PHP编码的数组

[英]Reading PHP encoded array with Android

我用PHP创建了一个数组。 我需要有关如何使用Android应用程序阅读的帮助。

编码数组如下所示:

["id","string 1","string 2","string 3","string 3","string 4"]

我必须能够使用Android应用程序阅读所有元素。

它是使用PHP创建的,其代码如下所示:

    $res = array();
    $res[] = $data['id'];
    $res[] = $data['string 1'];
    $res[] = $data['string 2'];
    $res[] = $data['string 3'];
    $res[] = $data['string 4'];
    return json_encode($res);

您能帮我解决这个问题吗?

对于您的示例,您可以使用以下代码来解析Android中的响应。 我已经用代码对您在代码中得到的响应进行了硬编码,这样您就可以了。 另外,我已经在活动的onCreate中编写了它,您可以在适合您的应用的任何地方编写它。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String strJson="[\"id\",\"string 1\",\"string 2\",\"string 3\",\"string 3\",\"string 4\"]"; // This is your response, with escaped " and used as a String

    try {

        //Get the instance of JSONArray that contains Strings
        JSONArray jsonArray = new JSONArray(strJson);
        for(int i=0; i < jsonArray.length(); i++){
            String data = (String)jsonArray.get(i);
            Log.d("MyData",data);
        }

    } catch (JSONException e) {e.printStackTrace(); // Not a good idea. But left it for now}
}

如果使用过滤器MyData监视logcat,则会发现输出为:

D/DATAIS: id
D/DATAIS: string 1
D/DATAIS: string 2
D/DATAIS: string 3
D/DATAIS: string 3
D/DATAIS: string 4

网络上有很多教程,涉及如何在Android中解析JSON。 您可以研究它们以获得更好的主意。

当我向PHP数组的元素添加名称时,我解决了这个问题:

$res = array();
$res[0] = $data['id'];
$res[1] = $data['string 1'];
$res[2] = $data['string 2'];
$res[3] = $data['string 3'];
$res[4] = $data['string 4'];

在Android方面:

JSONObject  mainObject = new JSONObject(ret);
String str1 = mainObject.optString("1").toString();
String str2 = mainObject.optString("2").toString();
String str3 = mainObject.optString("3").toString();
String str4 = mainObject.optString("4").toString();

谢谢大家的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM