2014-10-07 3 views
2

Итак, у меня есть словарь, который я пытаюсь отправить на сервер Node Hapi с устройства iOS.JSON выводится как ключ с пустым значением

И по какой-то причине моя полезная нагрузка запроса добавляет словарь в качестве ключа с пустым значением. Вот мой IOS код

NSDictionary *userData = [User userToDictionary: newUserInfo]; 
NSData *userJSON = [NSJSONSerialization dataWithJSONObject: userData options: kNilOptions error: nil]; 

NSString *urlString = [NSString stringWithFormat: @"%@%@/addNewUser", kBaseURL, kUsers]; 

// This will set up the URL 
NSURL *url = [NSURL URLWithString: urlString]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url]; 
[request setHTTPMethod: @"POST"]; 
[request addValue: @"application/json" forHTTPHeaderField: @"Content-Type"]; 

// This will set up the url session 
NSURLSessionConfiguration* config = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration: config]; 

NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest: request fromData: userJSON completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

    if(error) 
    { 

    } else 
    { 

    } 
}]; 

[uploadTask resume]; 

И вот моя полезная нагрузка

{ '{"userLastNameKey":"Kwon7","userEmailKey":"email7","userFirstNameKey":"Michael7","userUsernameKey":"username7","userPasswordKey":"password7"}': '' } 

может кто-нибудь помочь мне с этим? Я не хочу сохранять информацию о пользователе в монго в качестве ключа. Просто кажется странным.

+1

Мне бы хотелось узнать ответ, поэтому я могу закончить ответ на ваш другой вопрос;) – xShirase

+0

HAHAH Я провел 6 часов на этом хахах. Я вытащил все свои ресурсы как на IOS, так и на серверную сторону hahahaha все еще трудно решить его, но вы меня на правильном пути HAHA –

+0

Я не знаю iOS dev, но можете ли вы проверить, что вы не сериализуете свой JSON дважды? похоже, что вы создаете объект json, а затем инкапсулируете его в другой объект ... – xShirase

ответ

0

Публикация в качестве ответа, хотя ОП решил свою проблему и объяснил, что было не так. Он сказал, что это были заголовки. У меня была такая же проблема, и решение было конкретно заголовком Content-Type. Поскольку мы передавали объект JSON в клиент REST, мы решили, что он позаботился о настройке правильного Content-Type, но это не так.

Content-Type: application/json 

HAPI будет не предположить, полезная нагрузка запроса JSON. A JSON.stringify(request.payload, null, 2); показывает тот же формат, что и проблема в вопросе. Вы должны указать Content-Type для Hapi.js, чтобы правильно разобрать полезную нагрузку JSON как JSON.

Смежные вопросы