2014-10-27 5 views
0

У меня есть функция, которая запрашивает API Rest. Вызов функции выглядит следующим образом:Сериализовать массив объектов

var filters = [ 
    {field: "TestField", "params[value]": "VIDEO"}, 
    {field: "TestField2", "params[value]": "IMAGE"}, 
]; 

this.query({limit: 10, text:"Test", filters: filters}); 

Я хочу построить строку запроса, которая выглядит как:

?limit=10&text="Test"&filters[0].field=TestField&filters[0].params[value]=VIDEO&filters[1].field=TestField2&filters[1].params[value]=IMAGE 

Что такое лучший/быстрый способ сделать это в JavaScript относительно массива фильтров?

+0

Я вижу, вы используете подчеркивания, но вы также с помощью JQuery? – ncksllvn

+0

Я использую оба;) – mAtZ

+0

Хорошо, а что такое 'params [value]'? Этот код определенно работает? – ncksllvn

ответ

0

Array.prototype.map ваш друг:

var filters = [ 
    {field: "TestField", "params[value]": "VIDEO"}, 
    {field: "TestField2", "params[value]": "IMAGE"}, 
]; 

var qs = filters.map(function(filter,i){ 
    return "filters[" + i + "].field=" + 
      encodeURIComponent(filter.field) + 
      "&filters[" + i + "].params[value]=" + 
      encodeURIComponent(filter["params[value]"]); 
}).join("&"); 
+0

Спасибо , Это с чем работать. – mAtZ

Смежные вопросы