我是JSON的新手。 KIndly帮我解决了从android发送的php中的JSON解析。
我有一个A级,有会员phoneNumber和名字。我有一个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服务器端解析它以获取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();
}
}
请告诉我方法是否正确,或者请帮我纠正
答案 0 :(得分:0)
首先,我建议您使用库来处理JSON序列化/反序列化。 GSON适合您的工作。
然后,您应该在将结果发送到任何远程服务器之前检查结果JSON的有效性。
要在PHP中解析它,请使用json_decode()函数返回表示JSON的对象。如果您愿意,也可以获取哈希值,只需查看文档。
我认为您的问题是您的JSON无效,因为JSONObject未正确序列化您的ArrayList。你应该检查一下。