Passar um array via ajax para o controller java(vraptor)

Estou tentando enviar uma lista via ajax para o meu controller e estou tendo problemas. Inicialmente criei um array de objetos, o array estava sendo montado perfeitamente mas eu recebia null, no controller. Dando uma pesquisada encontrei algumas pessoas que conseguirão enviar por concatenação de string. Estou tentando fazer o mesmo e não obtenho sucesso. Porém a minha lista não vem null, agora ela tem o size 1, mas todas as propriedades estão nulas. Segue abaixo o controller e como estou montando o array:

Controller:

@Path("/extracaoInformacao/extrair")
public void extrair(String texto, List<Objetivo> objetivos) {
	...
}

JS:
ao verificar o array objetivos com o console.log obtenho o seguinte resultado:

objetivos[0].id=1&objetivos[0].descricao=Local do crime&objetivos[0].conceitoCentral=crime&objetivos[1].id=2&objetivos[1].descricao=Tipo do crime&objetivos[1].conceitoCentral=crime&

estou passando esse array da seguinte forma:

$.ajax({
	url: '/InformarPln/extracaoInformacao/extrair',
	async: true,
	cache: false,
	contentType: "application/json; charset=utf-8",
	dataType: 'json',
	data: {'texto' : texto, 'objetivos' : objetivos},
	error: function (data) {
		alert("Ocorreu um problema ao tentar gerar a árvore de dependência");
	},
}).done(function(data){
	alert("funfou");
});</code>

O array objetivo é montado no método abaixo:

function preencherObjetivos() {
	objetivos = [];
	var cont = 0;
	var pos = 0;
	
	$(".optionObj").each(function() {
		if ($('#objetivo' + cont).is(":checked")) {
			var idObjetivo = $('#objetivo' + cont).val();
			var descricaoObjetivo = $('#descricaoObj' + cont).val();
			var conceitoCentral = $('#conceitoCentral' + cont).val()
			objetivos += "objetivos[" + pos + "].id=" + idObjetivo + "&";
			objetivos += "objetivos[" + pos + "].descricao=" + descricaoObjetivo + "&";
			objetivos += "objetivos[" + pos + "].conceitoCentral=" + conceitoCentral + "&";
			pos++;
		}
		
		cont++;
	});
}

Essa requisição é um POST ou um GET?