2

PHPWebサービスに送信されたデータの解析に問題があります。私は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に完全に慣れていないので、これはかなり長い間私に頭痛の種を与えてきました。どんな助けでもいただければ幸いです!

4

1 に答える 1

1

これは正しくありませんif(is_null($decoded) == NULL)PHP is_null値を返しbooleanます。if(is_null($decoded) === FALSE)したがって、またはを使用する必要がありますif(is_null($decoded) === TRUE)

于 2012-12-19T01:22:22.863 に答える