Hapi-如何将有效负载解析为JSON?
所以我试图同时研究HTTP/TCP/IP协议、Nodejs、MongoJS和MongoDB。因此,我试图通过Hapi Web框架解决一些问题。我可以通过iOS模拟器与服务器通信,但是,我似乎无法正确解析负载。我知道我可以使用URL中的参数来发送信息,但我希望使用有效负载 所以我最终把这个保存到MongoHapi-如何将有效负载解析为JSON?,json,swift,Json,Swift,所以我试图同时研究HTTP/TCP/IP协议、Nodejs、MongoJS和MongoDB。因此,我试图通过Hapi Web框架解决一些问题。我可以通过iOS模拟器与服务器通信,但是,我似乎无法正确解析负载。我知道我可以使用URL中的参数来发送信息,但我希望使用有效负载 所以我最终把这个保存到Mongo ( { "_id" = 5431f161bb859872034d2456; "{\"userLastNameKey\":\"Kwon\",\"userEmailKey\"
(
{
"_id" = 5431f161bb859872034d2456;
"{\"userLastNameKey\":\"Kwon\",\"userEmailKey\":\"email\",\"userFirstNameKey\":\"Michael\",\"userUsernameKey\":\"username\",\"userPasswordKey\":\"password\"}" = "";
},
{
"_id" = 5431fe5694ed4721046c1f8c;
"{\"userLastNameKey\":\"Kwon2\",\"userEmailKey\":\"email2\",\"userFirstNameKey\":\"Michael2\",\"userUsernameKey\":\"username2\",\"userPasswordKey\":\"password2\"}" = "";
这是我打电话的hapi代码
// This will add a new user to the database
function addUser(request, response){
db.usersCollection.save(request.payload, function (err, saved){
if(err || !saved)
{
console.log("User not saved");
} else
{
console.log("User saved");
}
});
}
我的最终结果是我想尝试让它变成这样
(
{
"_id" = 5431f161bb859872034d2456,
"userLastNameKey" = "Kwon",
"userEmailKey" = "email",
"userFirstNameKey"= "Michael",
"userUsernameKey" = "username",
"userPasswordKey" = "password",
}
)
这是iOS代码
NSDictionary *userData = [User userToDictionary: newUserInfo];
NSData *userJSON = [NSJSONSerialization dataWithJSONObject: userData options: 0 error: nil];
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];
}
有人知道我如何做到这一点吗
{
"_id" = 5431f161bb859872034d2456;
"userLastNameKey" = "Kwon";
"userEmailKey" = "email";
"userFirstNameKey"= "Michael";
"userUsernameKey" = "username";
"userPasswordKey" = "password";
}
这不是一个JSON对象。您需要使用逗号而不是分号。和冒号而不是等号。您的ID也不是十进制数,因此最好将其设置为字符串
您的对象看起来像:
{
"_id" : "5431f161bb859872034d2456",
"userLastNameKey" : "Kwon",
"userEmailKey" : "email",
"userFirstNameKey" : "Michael",
"userUsernameKey" : "username",
"userPasswordKey" : "password"
}
要解析(格式良好的)JSON字符串,请使用:
var JSONObject=JSON.parse(JSONstring)代码>确定,因此有效负载的末尾有一个“=”。如果没有这一部分,JSON解析将非常有效。您知道该“”部分可能来自何处吗?您可以粘贴新的有效负载吗?{{{“userLastNameKey”:“Kwon6”,“userEmailKey”:“email6”,“userFirstNameKey”:“Michael6”,“userUsernameKey”:“username6”,“userPasswordKey”:“password6”}:“}the”:”最后,你能解释一下这是什么吗?当你生成字符串时一定是个错误,你能给你的帖子添加一些代码让我看看吗?看起来您将整个有效负载作为一个键,将“”(空)作为一个值。