Lendo uma lista JSON de string+ lista

13/07/2018

0

Sou iniciante no quesito JSON e Delphi e tm pouco experiente em programação em geral.
Primeiramente eu estou usando a unit uLkJSON e eu tinha um JSON enorme, de onde retirei o seguinte JSON :

"people":
{
"AUTOR(S)":
{ "Autor1":
{''ADVOGADO": [ "Advoga1", "Advoga2" ] }
}
"RÉU(S)":
{ "Réu1":
{"ADVOGADO": [ "Advoga3" ] },
"Réu2":
{ "ADVOGADO": [ "Advoga4","Advoga5" ] }
}
}
Esta é só uma parte do JSON que eu preciso ler, consegui ler tudo exceto esta parte e minha dúvida é: Eu devo extrair o "AUTOR(S)" como um TlkJSONobject ou TlkJSONlist? Como prosseguir depois disso?

Eu tentei extrair como uma List, mas dava o erro "invalid class typecast" e tbm eu não sabia como extrair um termo como string (que seria o Autor1) e outro como Array (que seria a lista de advogados), segue a minha tentativa: (Sei que tá bem errada kkkk mas não sabia outro jeito)

var
s : string (este é texto de onde retirei o people)
JsObjPartes, JsObjData : TlkJSONobject;
JsArrayAutor : TlkJSONlist;

Implementation
procedure TfrmAdvoga.Button1Click(Sender: TObject);
var i : integer

begin

JsObjPartes := JsObjData.Field ['people'] as TlkJSONObject;

JsArrayAutor := JsObjPartes.Field ['AUTOR(S)'] as TlkJSONlist;
for i:=0 to JsArrayAutor.count-1 do
memo2.Lines.Add('Autor: ' + VarToStr(JsArrayAutor.Child[i].Value));
end.
Raphael Santiago

Raphael Santiago

Responder

Posts

31/07/2018

Felipe Morais

"Esta é só uma parte do JSON que eu preciso ler"

Raphael, esta parte que você retirou/postou não é um JSON válido, portanto, o parse não é bem sucedido.
Por padrão, o JSON deve começar e terminar com chaves e os valores devem estar entre aspas e não apóstrofes, certifique que estas regras estejam sendo respeitadas no processamento da sua rotina.

Eu formatei novamente o JSON, teste novamente.

{
  "people": {
    "AUTOR(S)": {
	  "Autor1": {
	    "ADVOGADO": ["Advoga1", "Advoga2"]
	  }
    },
    "RÉU(S)": {
	  "Réu1": {
	    "ADVOGADO": ["Advoga3"]
	  },
	  "Réu2": {
	    "ADVOGADO": ["Advoga4", "Advoga5"]
	  }
    }
  }
}
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar