Hapi - 如何解析有效载荷为JSON?
问题描述:
所以我试图一次研究HTTP/TCP/IP协议,Nodejs,MongoJS和MongoDB。所以我试图找出Hapi Web框架的一些东西。我能够用我的iOS模拟器与服务器通信,但是,我似乎无法解析有效负载。我知道我可以使用URL中的参数发送信息,但我想使用有效载荷。Hapi - 如何解析有效载荷为JSON?
所以我最终将这个保存到Mongo中。
(
{
"_id" = 5431f161bb859872034d2456;
"{\"userLastNameKey\":\"Kwon\",\"userEmailKey\":\"email\",\"userFirstNameKey\":\"Michael\",\"userUsernameKey\":\"username\",\"userPasswordKey\":\"password\"}" = "";
},
{
"_id" = 5431fe5694ed4721046c1f8c;
"{\"userLastNameKey\":\"Kwon2\",\"userEmailKey\":\"email2\",\"userFirstNameKey\":\"Michael2\",\"userUsernameKey\":\"username2\",\"userPasswordKey\":\"password2\"}" = "";
这是我的呼叫代码。
// 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解析就会很好。你知道可能在哪里=“”部分来自? – 2014-10-06 04:02:55
你可以粘贴新的有效载荷吗? – xShirase 2014-10-06 04:26:56
{'{“userLastNameKey”:“Kwon6”,“userEmailKey”:“email6”,“userFirstNameKey”:“Michael6”,“userUsernameKey”:“username6”,“userPasswordKey”:“password6”}':''} – 2014-10-06 04:28:13