"Tratar" mensagem recebida via MQTT

Então, esse lance de comunicação entre máquinas é novo pra mim. Eu recebo uma String em formato de JSON, em exemplo:

{
	"client_id": randomnumber,
	"videos": 4,
	"remote_urls": [{
			"url": "a nice url"
		},
		{
			"url": "a nice url"
		},
		{
			"url": "a nice url"
		},
		{
			"url": "a nice url"
		}
	],
	"action": "start"
}

Ficam armazenadas numa string chamada textReceived (exemplo apenas). Queria saber como eu posso “quebrar” essas coisinhas em variaveis menores, pra eu poder usar melhor. Por exemplo, “action” será usada em alguns ifs, o “videos” em um int que será passado como parametro e etc.

Ah, eu to ciente que as URLS deverão ficar em um array!

Agradeço qualquer ajuda :3

Hey guys, alguma luz?

Esse fim de semana pesquisei sobre o método “split();” mas isso não parece muito bem atender ao que eu preciso…

Salve, Curiosity.

Seguinte, é uma dúvida bem pontual e válida a que você tem. Parece simples, e realmente é, mas é melhor que você trabalhe com a noção de JSON, mesmo.

Crie duas classes, ClientDTO com os campos que você recebe do Json, e o RemoteUrlDTO, que é a lista de urls que voce vai receber. Aí, é getter and setter.

Depois, no seu método de recebimento de mensagens, faz assim:

Gson g = new Gson();
ClientDTO clientDTO = g.fromJson(mensagemRecebida, ClientDTO.class);

Onde o “mensagemRecebida” é sua String e a class é o seu objeto Json que vai retirar os dados. A partir daí, é só trabalhar com os getters and setters e tal.

Espero que te ajude!

[]'s

1 curtida

Obrigado! Já foi uma luz quanto ao que fazer.