2014-05-19 37 views
0

im在android中按如下方式传递json数组。这里是低于将json数组接收到PHP

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("tag", request_tag)); 

    if(data.moveToFirst()) 
    { 
     do 
     { 
      params.add(new BasicNameValuePair("iscomplete[]",data.getString(0))); 
      params.add(new BasicNameValuePair("uidUser[]",data.getString(1))); 
      params.add(new BasicNameValuePair("connectID[]",data.getString(2))); 
     }while(data.moveToNext()); 
    } 
response = jsonParser.getJSONFromUrl(requestUrl, params); 
    Toast.makeText(context, response, 10000).show(); 

代码现在我希望得到它在服务器端BT它不会对PHP的工作

if ($tag == 'request') 
{ 
    $complete = (array)$_POST['iscomplete[]']; 
    $uiuser = (array)$_POST['uidUser[]']; 
    $connectId = (array)$_POST['connectID[]']; 
       echo $complete//This gives a blank value 
} 

JSON代码如下

public String getJSONFromUrl(String url, List<NameValuePair> params) { 

    // Making HTTP request 
    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 
     httpPost.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 

     response=EntityUtils.toString(httpEntity); 

     Log.d("Response",response); 
     //jObj=new JSONObject(response); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 


    return response; 

} 

在呼应干杯我收到一条空的消息。我认为我还没有正确收到数据

+0

你能告诉我们JSON吗? – Daan

+1

@ $ local_array_of_object = json_decode($ POST ['incomingjsonarray']);' – Dave

+0

@Daan添加了新的代码。 – coderVishal

回答

1

在你的Android应用程序中,通过在名称声明后给它们添加方括号,你可以创建iscomplete,uidUser和connectID参数作为数组。

当PHP解释一个页面时,它将所有参数(从POST或GET)转换为它们基于数组的等价物。所以

?iscomplete[]=one&uidUser=23&connectID=3432 

将变为:

$_POST['iscomplete'] = array('one'); 
$_POST['uidUser'] = array(23); 
$_POST['connectID'] = array(3432); 

当你想要得到的价值,你并不需要包括方括号 - PHP已经剥夺他们。所以你只需要:

if ($tag == 'request') 
{ 
    $complete = (array)$_POST['iscomplete']; 
    $uiuser = (array)$_POST['uidUser']; 
    $connectId = (array)$_POST['connectID']; 
    echo $complete; 
}