Не думаю, что вам нужно конвертировать его в массив. Я использовал jqGrid, и я просто позволил функции Json сериализовать объект. Я не уверен, что это может вызвать проблемы, но это как минимум ненужно.
Кроме того, ваши пользовательские данные будут оцениваться в виде строки (поскольку вы отправляете их в виде строки). Попробуйте отправить его как анонимный объект. а именно:
userdata = new { test1 = "thefield" },
Вам необходимо указать значение total и запятую между ними и страницей. (Я предполагаю, что это опечатка. Я не думаю, что это скомпилируется как есть.)
EDIT:
Кроме того, я бы порекомендовал добавить опцию «jsonReader: {repeatitems: false}» к вашему javascript. Это позволит вам отправлять свою коллекцию в поле «строки» без преобразования в синтаксис «{id: ID, cell: [data_row_as_array]}». Вы можете установить свойство "key = true" в вашем colModel, чтобы указать, какое поле является идентификатором. Это значительно упрощает передачу данных в сетку.