我是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没有正确序列化你的数组列表。你应该检查一下