php中的JSONObject数组列表解析



我是JSON的新手。请帮助我的JSON解析在php从android发送。

我有一个类a,它有成员phoneNumber和name。我有对象A

arrayList
    private ArrayList<A> contactList = new ArrayList<A>();
    contactList.add(a1);
    contactList.add(a2); [objects of A]

现在我正在尝试使用JSON将这个数组列表发送到php服务器。

JSONObject json = new JSONObject();
json.put("contactList", contactList);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("");
StringEntity se = new StringEntity("JSON: " + json.toString());
post.setEntity(se);
HttpResponse resP = client.execute(post);

请让我知道我如何在php服务器端解析它以获得phoneNumber和每个对象的名称A

我试图在php服务器端创建一个相同的类 a ,并尝试这种方式。

<?php
    $contactList = array();
    if(isset($_POST["contactList"])) {
        $contactList = json_decode($_POST["contactList"]);
        include_once './eachContactClass.php';
        foreach ($contactList->contactList as $eachContact) {
            $eachObj = new eachContactClass();
            $eachObj = $eachContact;
            $name = $eachObj->getName();
            $phoneNumber = $eachObj->getPhone();
        }
    }

请告诉我方法是否正确,或者请帮我改正

首先,我建议您使用一个库来处理JSON序列化/反序列化。GSON很适合你的工作。

然后,您应该在将结果JSON发送到任何远程服务器之前检查其有效性。

要在PHP中解析它,使用json_decode()函数,它将返回一个代表JSON的对象。如果你喜欢,你也可以得到一个哈希值,只需查看文档。

我认为你的问题是你的JSON是无效的,因为JSONObject没有正确序列化你的数组列表。你应该检查一下

最新更新