0

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

我有一个 A 类,有成员电话号码和姓名。我有一个arrayList对象A

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

现在我正在尝试使用 JSON 将此 arrayList 发送到 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 服务器端解析它以获取每个对象A的 phoneNumber 和名称。

我试图在 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();

        }
    }

请让我知道该方法是否正确,或者请帮助我更正

4

1 回答 1

0

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

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

要在 PHP 中解析它,请使用json_decode()函数,该函数将返回一个代表 JSON 的对象。如果您愿意,也可以获取哈希,只需查看文档即可。

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

于 2013-04-09T12:50:20.007 回答