Code = -1016 «аргумент` parameters` недействителен json. " userinfo = {nslocalizedfailurereason = аргумент `parameters` недействителен json.}

Я очищаю код и пытаюсь поместить 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
983
1

Ответы 1

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

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

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)")
    }
}

Проголосовали за то, что нашли время опубликовать решение, когда вы его нашли.

Duncan C 14.09.2018 01:56

Другие вопросы по теме