У меня есть метод 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...)
, потому что у него есть оператор сплата ...
.
Если вы попытались PostJson(path, access_token, objects)
в C #, вы в конечном итоге отправите JSON ["<access_token>",["Hello World!",true,3.1415]]