json_decode从iOS应用程序返回null值

时间:2012-12-19 01:16:09

标签: php ios json

我在解析发送到php webservice的数据时遇到问题。我使用以下代码来获取json:

$decoded = json_decode(file_get_contents('php://input'));
if(is_null($decoded) == NULL)
    {
        $body = "Data was not successfully received";
        $body = $body . "      " . $jsonInput;
    }

json是从iOS应用程序发送的,如下所示:

{
  "water" : "YES",
  "int_clean" : "YES",
  "ceiling_stains" : "YES",
  "additional_comments" : "not entered",
  "roof_cond" : "YES",
  "e_clean" : "YES",
  "interior_cond" : "not entered",
  "no_exp" : "not entered",
  "addr" : "YES",
  "roof_leak" : "YES",
  "doors_sec" : "YES",
  "elec" : "YES",
  "ceiling_exp" : "not entered",
  "repaired" : "YES",
  "o_desc" : "not entered",
  "w_sign" : "YES",
  "o_cond" : "not entered",
  "int_cond" : "YES",
  "gas" : "YES",
  "for_sale_sign" : "YES",
  "sold_as_is" : "YES",
  "mb_sign" : "YES",
  "graffiti" : "YES",
  "date" : "18-12-2012 18:58",
  "dewinterized" : "YES",
  "HVAC" : "YES",
  "why_no_mat" : "not entered",
  "is_lockbox" : "YES",
  "financing_mat" : "YES",
  "yard_cond" : "YES",
  "marketing_mat" : "YES",
  "HVAC_missing" : "not entered",
  "agent_info" : "YES",
  "e_cond" : "YES",
  "e_key" : "YES",
  "pool_sec" : "YES",
  "pool_clean" : "YES"
}

并使用此代码发送:

 NSDictionary * info = [NSDictionary dictionaryWithObjects:values forKeys:keys];
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:info options:NSJSONWritingPrettyPrinted error:&error];

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://uofi-bars.com/sendEmail.php"]];
[req addValue:@"Content-Type: application/json" forHTTPHeaderField: @"Content-Type"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody:jsonData];


[NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];

我是php的新手,这让我头疼了很长一段时间。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

这不正确if(is_null($decoded) == NULL)PHP is_null返回boolean值。因此,您需要使用if(is_null($decoded) === FALSE)if(is_null($decoded) === TRUE)