Php 变量不可用JSON解析器数据(DataTask)

Php 变量不可用JSON解析器数据(DataTask),php,ios,json,swift,Php,Ios,Json,Swift,我试图通过字典数组向服务器发送JSON数据,并检索JSON字符串简单字符串响应。 下面是一个代码: do { let serializedData = try JSONSerialization.data(withJSONObject: OrderList, options: JSONSerialization.WritingOptions.prettyPrinted) print(String(data: serializedData, encoding: S

我试图通过字典数组向服务器发送JSON数据,并检索JSON字符串简单字符串响应。 下面是一个代码:

do
    {

  let serializedData =  try JSONSerialization.data(withJSONObject: OrderList, options: JSONSerialization.WritingOptions.prettyPrinted)

        print(String(data: serializedData, encoding: String.Encoding.utf8))
        request.httpBody = serializedData

        //print(request.httpBody as Any)

    }
    catch
    {
    }
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

     let dataTask = session.dataTask(with: request as URLRequest, completionHandler: {data, response,error -> Void in
            print("Request : \(response)")

            let res = response as! HTTPURLResponse

            print("Status Code : \(res.statusCode)")

            let strResponse = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
            print("Response String :\(strResponse)")
        })
        dataTask.resume()
服务器端代码是Php:

 $JSON_Received = $_POST["user_contacts"];
 $obj_data = json_decode($JSON_Received, true);  
 $user_id=$data_array['user_id'];
 $user_friend_list=$data_array['friend_list'];
我有两个问题我不明白

1因为api希望接收JSON数据,所以当我打印SerialzedData以检查它是否是正确的JSON时:它打印如下内容:

Optional("{\n  \"user_contacts\" : [\n    {\n      \"friend_list\" : \"+928885555512\",\n      \"user_id\" : \"+9255\"\n    },\n    {\n      \"friend_list\" : \"+925555648583\",\n      \"user_id\" : \"+9255\"\n    },\n    {\n      \"friend_list\" : \"+925555228243\",\n      \"user_id\" : \"+9255\"\n    },\n    {\n      \"friend_list\" : \"+925554787672\",\n      \"user_id\" : \"+9255\"\n    },\n    {\n      \"friend_list\" : \"+925556106679\",\n      \"user_id\" : \"+9255\"\n    },\n    {\n      \"friend_list\" : \"+925557664823\",\n      \"user_id\" : \"+9255\"\n    }\n  ]\n}")
我发送的JSON是否正确?当我检查在线解析器时,它无法转换正确的json。那么如何发送正确的JSON呢

2当我在调试器中打印datatask时,它显示变量不可用


所以请帮我解决这个问题:提前谢谢

你好@catalyst我想你应该把request.httpBody=serializedData!因为它在打印中显示为可选。其次,请查看打印值,我认为您发送了正确的json数据。谢谢!我又加了一句!但编译器强迫我删除它。在调用将数据发送到服务器的方法之前,我已经打印了正确的数据。但在这里我不知道为什么它会得到\n和类似的东西通常是:serializedData不具有漂亮的打印效果。它是无用的,并且添加垃圾。请尝试JSONSerialization.datawithJSONObject:OrderList,选项:[]。