Code = -1016 "Аргумент` parameters` не является допустимым JSON. " UserInfo = {NSLocalizedFailureReason = Аргумент `parameters` не является допустимым JSON.} - PullRequest
0 голосов
/ 13 сентября 2018

Я очищаю некоторый код и пытаюсь поместить serverRequest в мой класс NSManagedObject.Точно такая же функция прекрасно работает в UIViewController, в котором она изначально была написана, однако, когда я вызываю ее в объектном файле CoreData, я получаю следующую ошибку:

Error Domain=com.alamofire.error.serialization.request Code=-1016 "The `parameters` argument is not valid JSON." UserInfo={NSLocalizedFailureReason=The `parameters` argument is not valid JSON.}

Я напечатал «параметры» в оригиналедела, а также новые, и они точно так же.Я успешно работаю с другими конечными точками, которые я настроил в этом классе объектов CoreData, но по какой-то причине он не работает.

Есть идеи?

Успешно: загрузка пакета вопросов ChecklistTABLEVIEW.swift

["answers": ["each": <_TtGCs23_ContiguousArrayStoragePs9AnyObject__ 0x604000c551b0>(
{
    answerString = "";
    "assigned_emails" =     (
        "email@email.com"
    );
    "checklist_id" = 186;
    questionId = 4274;
    rating = "";
    "report_time" = "2018-09-13 19:40:21 +0000";
},
{
    answerString = "";
    "assigned_emails" =     (
        "email@email.com"
    );
    "checklist_id" = 186;
    questionId = 293112;
    rating = "";
    "report_time" = "2018-09-13 19:40:21 +0000";
    selected =     (
    );
}
)
, "checklist_id": 186], "user": ["authentication_token": "TOKEN", "email": "email@email.com"], "count": 2]

Неуспешно: загрузка пакета вопросов CHECKLIST.swift

["answers": ["each": <_TtGCs23_ContiguousArrayStoragePs9AnyObject__ 0x600000c57ee0>(
{
    answerString = "";
    "assigned_emails" =     (
        "email@email.com"
    );
    "checklist_id" = 186;
    questionId = 4274;
    rating = "";
    "report_time" = "2018-09-13 19:40:21 +0000";
},
{
    answerString = "";
    "assigned_emails" =     (
        "email@email.com"
    );
    "checklist_id" = 186;
    questionId = 293112;
    rating = "";
    "report_time" = "2018-09-13 19:40:21 +0000";
    selected =     (
    );
}
)
, "checklist_id": 186], "user": ["authentication_token": "TOKEN", "email": "email@email.com"], "count": 2]

Тепараметры одинаковы в успешных и неудачных случаях, они просто вызываются из разных файлов.Зачем получать ошибку сериализации от AFNetworking ?

1 Ответ

0 голосов
/ 13 сентября 2018

Я нашел проблему.У меня была дата в моих параметрах, и мне пришлось преобразовать ее в строку.

Я использовал этот код, чтобы найти конкретную проблему.

if JSONSerialization.isValidJSONObject(params)
{
    if let data = try? JSONSerialization.data(withJSONObject: params, options: [])
    {
        print("JSON data object is: \(data)")
    }
}            
else
{
    do
    {
        let data = try JSONSerialization.data(withJSONObject: params, options: [])
        print("JSON data object is: \(data)")
    }
    catch let error as NSError
    {
        print("no  bueno: \(error)")
    }
}
...