PHP数组到JSON数组使用json_encode()以及json如何解析android;

时间:2016-02-21 14:24:49

标签: php android arrays json

我有一个php数组,用json_encode($ arr)编码。

我想使用JSONObject在android中解析这个Json。

但是我怎样才能解析它并在text_view上打印名称就像在Rohan(所有名字)上一样打印text_view。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="...">
</manifest>

我可以将它转换成这样的

[["Rohan","example1.com"],["Ashok","example2.com"]] }

2 个答案:

答案 0 :(得分:0)

首先,让我们像这样命名我们的数组:

修改

在实际执行编码之前添加指定内容类型的标头是一个好习惯:

header('Content-type: application/json')
json_encode(array('students' => $arr));

这样,你就会得到这个:

{ "students": [{"Rohan":"example1.com"}]}

而不是你现在得到的东西。

要从Android中的JSONObject获取名称,您需要循环访问数组,然后逐个选择。假设您正在以String的形式获取JSON表单PHP,您可以尝试这样的事情:

JSONObject jsonObject = new JSONObject(mJSON);
JSONArray jsonArray = jsonObject.getJSONArray("students");

for (int i = 0; i < jsonArray.length(); i++) {

    JSONObject current = jsonArray.getJSONObject(i);

    if (!current.getString("student_name").isEmpty()) {
        mTextView.setText(current.getString("student_name"));
    }

}

希望有所帮助。

答案 1 :(得分:0)

您可以尝试使用php以这种方式对json进行编码以满足您的需求:

<?php 
$json='{
    "students": [
        {
            "Rohan": "example1.com"
        },
        {
            "Ashok":"example2.com"
        }
    ]
}';
var_dump($json);

$students=array(
    "student"=>array(
        array("Rohan"=>"example1.com"),
        array("Ashok"=>"example2.com")
        )
    );
var_dump(json_encode($students, JSON_PRETTY_PRINT));

但我觉得这样做有点奇怪,因为你必须创建只包含一个键的数组。我认为herrmartell架构更清晰。 干杯!