我有一个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...)
,因为它有一个摔跤运营商...
。
如果您在C#试图PostJson(path, access_token, objects)
你最终会发送JSON ["<access_token>",["Hello World!",true,3.1415]]
我可能会最终使用反射的东西,使其工作就是我想要的,但是这是有趣的。谢谢! – 2009-11-02 03:01:00