我有一个PostServer(string path, params object[] objects) 方法将 json 发布到我的服务器。但在我发送我的对象数组之前,我会在它的前面添加一个会话令牌。
string access_token = "<access_token>";
string url = "http://example.com";
void PostJson(string path, params object[] objects) {
SendHttp(url + path, HttpMethod.POST, JSON.Stringify(objects));
}
void PostServer(string path, params object[] objects) {
object[] moreObjects = new object[objects.Length + 1];
object[0] = access_token;
objects.CopyTo(moreObjects, 1);
PostJson(path, moreObjects); // moreObjects will be expanded into PostJson objects
}
然后...
PostServer("/greet", "Hello World!", true, 3.1415);
会将 json ["<access token>","Hello World!",true,3.1415] 发送到我的服务器。
实际上,我将moreObjects 直接放入JSON.Stringify,但你明白了。
因此您可以扩展数组,但您将数组作为唯一的 params 参数传递。在coffeescript 中你可以使用PostJson(path, access_token, objects...),因为它有一个splat 运算符...。
如果你在 c# 中尝试过PostJson(path, access_token, objects),你最终会发送 json ["<access_token>",["Hello World!",true,3.1415]]