JSON作为键输出,空白值

时间:2014-10-07 02:05:19

标签: ios json node.js hapijs

所以我有一本字典,我试图从iOS设备发送到Node Hapi服务器。

由于某种原因,我的请求有效负载是将字典添加为具有空值的键。 这是我的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"}': '' }

任何人都可以帮我这个吗?我不想将我的用户信息保存在mongo中作为密钥。看起来很奇怪。

1 个答案:

答案 0 :(得分:0)

尽管OP解决了他的问题并解释了什么是错误,但仍然作为答案发布。他说这是标题。我有完全相同的问题,解决方案特别是Content-Type标题。由于我们将一个JSON对象传递给REST客户端,因此我们认为它设置了正确的Content-Type,但事实并非如此。

Content-Type: application/json

HAPI 假设请求有效负载是JSON。 JSON.stringify(request.payload, null, 2);显示的格式与问题中的问题相同。您必须为Hapi.js指定Content-Type才能将JSON有效负载正确解析为JSON。