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

时间:2017-05-06 07:05:03

标签: php ios json swift

我正在尝试将JSON数据(字典数组)发送到服务器并检索JSON字符串(简单字符串Reposponse)。 这是一个代码:

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(在调试器中)时,它会显示"Variable Not Available"

SO帮我解决这个问题:提前谢谢!

0 个答案:

没有答案