Lendo uma lista JSON de string+ lista
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.
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
Curtidas 0
Respostas
Felipe Morais
13/07/2018
"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.
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"] } } } }
GOSTEI 0