I'm consuming a Web Service, it follows the JAVA code (JSP):
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%-- start web service invocation --%><hr/>
<%
try {
com.totvs.framework.ws.execbo.service.WebServiceExecBO service = new com.totvs.framework.ws.execbo.service.WebServiceExecBO();
com.totvs.framework.ws.execbo.service.ExecBOServiceEndpoint port = service.getWebServiceExecBOPort();
// TODO initialize WS operation arguments here
String user = request.getParameter("centroCusto");
String token = port.userLogin(user);
String path = "dzp/teste001.p";
String procedure = "ws-busca-ccusto";
String json = "[{\"name\":\"tt-ccusto\",\"type\":\"output\",\"dataType\":\"temptable\",\"value\":{\"name\":\"tt-ccusto\",\"fields\":[{\"name\":\"cod-ccusto\", \"label\":\"codccusto\",\"type\":\"character\"},{\"name\":\"descricao\", \"label\":\"descricao\",\"type\":\"character\"}],\"records\":[]}}]";
// TODO process result here
java.lang.String result = port.callProcedureWithToken(token, path, procedure, json);
out.println("Result = "+result);
} catch (Exception ex) {
// TODO handle custom exceptions here
out.println("ERROR = "+ex);
}
%>
<%-- end web service invocation --%><hr/>
Which returns a list of cost centers:
Result = [{"dataType":"temptable","name":"tt-ccusto","value":"{\"records\":[{\"descricao\":\"Exclusivo Cadastro de Itens\",\"cod-ccusto\":\"00000001\"},{\"descricao\":\"Administracao\",\"cod-ccusto\":\"10011001\"},{\"descricao\":\"(Desat.) - Administracao\",\"cod-ccusto\":\"10011999\"},{\"descricao\":\"Tecnologia da Informacao\",\"cod-ccusto\":\"10111001\"},{\"descricao\":\"Recursos Humanos\",\"cod-ccusto\":\"10211001\"},{\"descricao\":\"(Desat.) - Seguranca do Trabalho\",\"cod-ccusto\":\"10211002\"},{\"descricao\":\"Ambulatorio\",\"cod-ccusto\":\"10211003\"},{\"descricao\":\"Afastados\",\"cod-ccusto\":\"10211004\"},{\"descricao\":\"Aprendiz \\/ Senai\",\"cod-ccusto\":\"10211005\"},{\"descricao\":\"Controladoria\",\"cod-ccusto\":\"10311001\"},{\"descricao\":\"Financeiro\",\"cod-ccusto\":\"10311002\"},{\"descricao\":\"Fiscal\",\"cod-ccusto\":\"10311003\"},{\"descricao\":\"Logistica\",\"cod-ccusto\":\"10411001\"},{\"descricao\":\"Compras\",\"cod-ccusto\":\"10411002\"},{\"descricao\":\"(Desat.) - Almoxarifado Geral\",\"cod-ccusto\":\"10411998\"},{\"descricao\":\"(Desat.) - Expedicao\",\"cod-ccusto\":\"10411999\"},{\"descricao\":\"Vendas\",\"cod-ccusto\":\"10511001\"},{\"descricao\":\"(Desat.) - Vendas\",\"cod-ccusto\":\"10511998\"},{\"descricao\":\"(Desat.) - Vendas\",\"cod-ccusto\":\"10511999\"},{\"descricao\":\"Juridico\",\"cod-ccusto\":\"10611001\"},{\"descricao\":\"Administracao da Producao\",\"cod-ccusto\":\"23121001\"},{\"descricao\":\"Planejamento e Controle da Producao-Fixo\",\"cod-ccusto\":\"23121002\"},{\"descricao\":\"Expedicao\",\"cod-ccusto\":\"23121003\"},{\"descricao\":\"Almoxarifado\",\"cod-ccusto\":\"23121004\"},{\"descricao\":\"Seguranca do Trabalho\",\"cod-ccusto\":\"23121005\"},{\"descricao\":\"(Desat.) - Producao Fixo\",\"cod-ccusto\":\"23121998\"},{\"descricao\":\"(Desat.) - Producao Fixo\",\"cod-ccusto\":\"23121999\"},{\"descricao\":\"Manutencao Fabril - Fixo\",\"cod-ccusto\":\"23221001\"},{\"descricao\":\"Manutencao Patrimonial - Fixo\",\"cod-ccusto\":\"23221002\"},{\"descricao\":\"Manutencao Automacao - Fixo\",\"cod-ccusto\":\"23221003\"},{\"descricao\":\"Ferramentaria - Fixo\",\"cod-ccusto\":\"23321001\"},{\"descricao\":\"(Desat.) - Matrizaria Fixo\",\"cod-ccusto\":\"23321999\"},{\"descricao\":\"Ferramentaria - Variavel\",\"cod-ccusto\":\"23322001\"},{\"descricao\":\"(Desat.) - Afiacao - Variavel\",\"cod-ccusto\":\"23322002\"},{\"descricao\":\"Gestao da Qualidade - Fixo\",\"cod-ccusto\":\"23421001\"},{\"descricao\":\"Engenharia de Pesquisa e Desenvol - Fixo\",\"cod-ccusto\":\"23521001\"},{\"descricao\":\"Engenharia de Produto - Fixo\",\"cod-ccusto\":\"23521002\"},{\"descricao\":\"Engenharia de Processos - Fixo\",\"cod-ccusto\":\"23521003\"},{\"descricao\":\"Laboratorio Metalurgico - Fixo\",\"cod-ccusto\":\"23521004\"},{\"descricao\":\"Laboratorio Testes Mecanicos\",\"cod-ccusto\":\"23521005\"},{\"descricao\":\"Desenvolvimento de Novos Produtos\",\"cod-ccusto\":\"23521006\"},{\"descricao\":\"(Desat.) - Engenharia Fixo\",\"cod-ccusto\":\"23521999\"},{\"descricao\":\"Corte - Fixo\",\"cod-ccusto\":\"25121001\"},{\"descricao\":\"Corte - Variavel\",\"cod-ccusto\":\"25132001\"},{\"descricao\":\"Forjarias - Fixo\",\"cod-ccusto\":\"25221001\"},{\"descricao\":\"(Desat.) - Forjaria II Custos Fixos\",\"cod-ccusto\":\"25221996\"},{\"descricao\":\"(Desat.) - Forjaria II Custos Fixos\",\"cod-ccusto\":\"25221997\"},{\"descricao\":\"(Desat.) - Forjaria II\",\"cod-ccusto\":\"25221998\"},{\"descricao\":\"(Desat.) - Forjaria I\",\"cod-ccusto\":\"25221999\"},{\"descricao\":\"(Desat.) - Forjaria II Grupo 21 - Variav\",\"cod-ccusto\":\"25232001\"},{\"descricao\":\"(Desat.) - Forjaria II Grupo 22 - Variav\",\"cod-ccusto\":\"25232002\"},{\"descricao\":\"(Desat.) - Forjaria II Grupo 31 - Variav\",\"cod-ccusto\":\"25232003\"},{\"descricao\":\"Forjaria II Grupo 34 - Variavel\",\"cod-ccusto\":\"25232004\"},{\"descricao\":\"Forjaria II Grupo 35 - Variavel\",\"cod-ccusto\":\"25232005\"},{\"descricao\":\"Forjaria II Grupo 38 - Variavel\",\"cod-ccusto\":\"25232006\"},{\"descricao\":\"Forjaria II Grupo 41 - Variavel\",\"cod-ccusto\":\"25232007\"},{\"descricao\":\"Forjaria II Grupo 51 - Variavel\",\"cod-ccusto\":\"25232008\"},{\"descricao\":\"Forjaria II Grupo 32 - Variavel\",\"cod-ccusto\":\"25232009\"},{\"descricao\":\"Grupo de Forjamento 42\",\"cod-ccusto\":\"25232010\"},{\"descricao\":\"Grupo de Forjamento 33\",\"cod-ccusto\":\"25232011\"},{\"descricao\":\"(Desat.) - Forjaria II Grupo 32 - Variav\",\"cod-ccusto\":\"25232997\"},{\"descricao\":\"(Desat.) - Forjaria II Grupo 33 - Variav\",\"cod-ccusto\":\"25232998\"},{\"descricao\":\"(Desat.) - Forjaria I Grupo 2 Variavel\",\"cod-ccusto\":\"25232999\"},{\"descricao\":\"Tratamento Termico - Fixo\",\"cod-ccusto\":\"25321001\"},{\"descricao\":\"Tratamento Termico - Variavel\",\"cod-ccusto\":\"25332001\"},{\"descricao\":\"Acabamento - Fixo\",\"cod-ccusto\":\"25421001\"},{\"descricao\":\"Acabamento - Variavel\",\"cod-ccusto\":\"25432001\"},{\"descricao\":\"Pintura - Fixo\",\"cod-ccusto\":\"25521001\"},{\"descricao\":\"Pintura - Variavel\",\"cod-ccusto\":\"25532001\"},{\"descricao\":\"Mini Fabrica - Fixo\",\"cod-ccusto\":\"25621001\"},{\"descricao\":\"(Desat.) - Usinagem Terceiro Ponto - Var\",\"cod-ccusto\":\"25632001\"},{\"descricao\":\"(Desat.) - Usin.Braco-Eixos e Mangas Eix\",\"cod-ccusto\":\"25632002\"},{\"descricao\":\"Usinagem de Esferas Agricolas - Var\",\"cod-ccusto\":\"25632003\"},{\"descricao\":\"Montagem de Conjuntos Tubulares - Variav\",\"cod-ccusto\":\"25632004\"},{\"descricao\":\"Montagem de Conjuntos Barras - Variavel\",\"cod-ccusto\":\"25632005\"},{\"descricao\":\"Usinagem Flange do Freio - Variavel\",\"cod-ccusto\":\"25632006\"},{\"descricao\":\"(Desat.) - Conj.Manga Eixo Variavel\",\"cod-ccusto\":\"25632998\"},{\"descricao\":\"(Desat.) - Conj.Eixo Dianteiro\",\"cod-ccusto\":\"25632999\"},{\"descricao\":\"Usinagem - Fixo\",\"cod-ccusto\":\"25721001\"},{\"descricao\":\"(Desat.) - Usinagem Custo Fixo\",\"cod-ccusto\":\"25721999\"},{\"descricao\":\"Usinagem Eixos - Variavel\",\"cod-ccusto\":\"25732001\"},{\"descricao\":\"Usinagem Flanges e Yokes - Variavel\",\"cod-ccusto\":\"25732002\"},{\"descricao\":\"Usinagem Eixo Longo - Variavel\",\"cod-ccusto\":\"25732003\"},{\"descricao\":\"Usinagem Ponta de Eixo - Variavel\",\"cod-ccusto\":\"25732004\"},{\"descricao\":\"Usinagem Bracos - Variavel\",\"cod-ccusto\":\"25732005\"},{\"descricao\":\"Usinagem Aneis - Variavel\",\"cod-ccusto\":\"25732006\"},{\"descricao\":\"(Desat.) - Usinagem Brochadeiras - Varia\",\"cod-ccusto\":\"25732007\"},{\"descricao\":\"(Desat.) - Usinagem Virabrequins - Varia\",\"cod-ccusto\":\"25732008\"},{\"descricao\":\"(Desat.) - Inducao - Variavel\",\"cod-ccusto\":\"25732009\"},{\"descricao\":\"Usinagem Trunnion - Variavel\",\"cod-ccusto\":\"25732010\"},{\"descricao\":\"Usinagem Diversos - Variavel\",\"cod-ccusto\":\"25732011\"},{\"descricao\":\"(Desat.)\",\"cod-ccusto\":\"25732995\"},{\"descricao\":\"(Desat.)\",\"cod-ccusto\":\"25732996\"},{\"descricao\":\"(Desat.) - Usinagem Pesada Variavel\",\"cod-ccusto\":\"25732997\"},{\"descricao\":\"(Desat.) - Usin.Geradora de Engrenagem\",\"cod-ccusto\":\"25732998\"},{\"descricao\":\"(Desat.) - Usinagem Eletroferragem\",\"cod-ccusto\":\"25732999\"},{\"descricao\":\"Rateio Lotacao\",\"cod-ccusto\":\"92000001\"},{\"descricao\":\"Rateio Horas de Producao\",\"cod-ccusto\":\"92000002\"},{\"descricao\":\"Rateio Energia Eletrica\",\"cod-ccusto\":\"92000003\"},{\"descricao\":\"Rateio Area Construida\",\"cod-ccusto\":\"92000004\"},{\"descricao\":\"Rateio Area Predio I\",\"cod-ccusto\":\"92000005\"},{\"descricao\":\"Rateio Predio H\",\"cod-ccusto\":\"92000006\"},{\"descricao\":\"Rateio Predio G\",\"cod-ccusto\":\"92000007\"},{\"descricao\":\"Rateio Predio F\",\"cod-ccusto\":\"92000008\"},{\"descricao\":\"Rateio Predio B\",\"cod-ccusto\":\"92000009\"},{\"descricao\":\"Rateio Gas Natural\",\"cod-ccusto\":\"92000010\"},{\"descricao\":\"Rateio Predio J\",\"cod-ccusto\":\"92000011\"},{\"descricao\":\"Rateio Predio 2\",\"cod-ccusto\":\"92000012\"},{\"descricao\":\"Rateio Lotacao por m²\",\"cod-ccusto\":\"92000013\"},{\"descricao\":\"Rateio Rampa da Lavagem\",\"cod-ccusto\":\"92000014\"},{\"descricao\":\"Rateio Vazao ETE\",\"cod-ccusto\":\"92000015\"},{\"descricao\":\"Execucao Orcamentaria\",\"cod-ccusto\":\"93000001\"},{\"descricao\":\"(Desat.) - Orcamentos\",\"cod-ccusto\":\"99999999\"},{\"descricao\":\"TESTE\",\"cod-ccusto\":\"10011999\"},{\"descricao\":\"ORCAMENTOS\",\"cod-ccusto\":\"99999999\"}],\"fields\":[{\"name\":\"cod-ccusto\",\"label\":\"codccusto\",\"type\":\"character\"},{\"name\":\"descricao\",\"label\":\"descricao\",\"type\":\"character\"}]}","type":"output"}]
Now, I would like to handle this data, for example: showing all descriptions of all cost centers. I thought about turning this String into an object or into a JSON to go through all the items in some way, but I'm not sure what I'm doing or how I should do it.
My question is: What is the most practical way to turn this String into something I can refer to?
According to user Renan's guidance, I adapted his code and it worked :
JSON.JSONObject object = new JSON.JSONArray(result).getJSONObject(0);
JSON.JSONObject object2 = new JSON.JSONObject(object.getString("value"));
JSON.JSONArray arrayFinal = object2.getJSONArray("records");
for(int i = 0; i < arrayFinal.length(); i++){
final String descricao = arrayFinal.getJSONObject(i).getString("descricao"), ccusto = arrayFinal.getJSONObject(i).getString("cod-ccusto");
out.println(descricao + " - " + ccusto + "</br>");
}
I'll leave his answer as correct because it covers the question further.