我想發佈一個包含數組的我的服務器的JSON消息。但是,服務器無法識別陣列中的元素。在檢查了這個問題之後,我遇到了我認爲是問題的東西。Node.js bodyparser無法準備AFNetworking POST數組
AFNetworking代碼:
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:kServiceBaseUrl]];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager PUT:@"/api/createRubaway"
parameters:myDictionary
success:^(NSURLSessionDataTask *task, NSDictionary *responseObject)
{/* stuff */}
failure:^(NSURLSessionDataTask *task, NSError *error)
{/* stuff */}
];
LLDB打印出 'myDictionary' 的:
{
description = description;
title = title;
transitions = (
{
idx = 0;
resource = {
data = testdata;
name = transition;
type = image;
};
threshold = "0.75";
type = rubaway;
},
{
idx = 1;
resource = {
data = testdata;
name = transition;
type = image;
};
threshold = "0.75";
type = rubaway;
}
);
}
後AFNetworking已串行化的請求。如果我打印出從NSMutableRequest的HTTPBody,這是它在發送(這是被髮送到我的服務器):
description=description&title=title&transitions[][idx]=0&
transitions[][resource][data]=testdata&
transitions[][resource][name]=transition&
transitions[][resource][type]=image&
transitions[][threshold]=0.75&
transitions[][type]=rubaway&transitions[][idx]=1&
transitions[][resource][data]=testdata&
transitions[][resource][name]=transition&
transitions[][resource][type]=image&transitions[][threshold]=0.75&
transitions[][type]=rubaway
是上述格式正確無誤。作爲我的服務器(Node.js - BodyParser),我相信它會採用這種格式https://stackoverflow.com/a/18402556/623750
有沒有辦法更改JSON序列化程序的格式?或者,有沒有辦法配置BodyParser接受上述格式?
感謝, 瑞安
一個問題,在nodejs代碼中;你在文件中添加了什麼('')?我面臨同樣的問題,req.body不被識別爲數組。 – 2015-02-27 11:08:58