2013-04-09 61 views
0

我是JSON的新手。 KIndly幫助我從Android發送的PHP中的JSON解析。JSONObject arrayList解析在php中

我有一個類A,有成員phoneNumber和名稱。我有對象arrayList一個

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

現在我想此ArrayList發送到使用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的和名稱。

我試圖在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

首先,我建議你使用一個庫處理JSON序列化/反序列化。 GSON將適合您的工作。

然後,您應該在將結果發送到任何遠程服務器之前檢查結果JSON的有效性。

要在PHP中解析它,請使用json_decode()函數,該函數將返回表示您的JSON的對象。如果你願意,你也可以得到一個散列,只要看看文檔。

我認爲你的問題是你的JSON無效,因爲JSONObject沒有正確地序列化你的ArrayList。你應該檢查一下。