Closed ds-sampaio closed 1 year ago
Depois de um bom tempo pesquisando e testando, descobri o problema, deixarei a solução, caso outras pessoas passem pela mesma situação.
O meu objeto json tem o nome de participante e part_funcionario, então como havia dito na postagem anterior, meu memtable estava sendo criado com o mesmo nome. [participante := TFDMemTable.Create(nil); e part_funcionario := TFDMemTable.Create(nil);] So que faltou um detalhe, é necessário definir a propriedade name do componente para o mesmo nome kkk. Então minhas memtable's ficaram assim: participante.name := 'participante' e part_funcionario.Name := 'part_funcionario'
Criei uma relação MasterDetail com Memtable visual e funcionou corretamente a saída do JSON Aninhado utilizando o MemTableMaster.ToJSONObject.
Porém ao criar uma MemTable em tempo de execução: participante := TFDMemTable.Create(nil); //MemTable Master dtsMaster.DataSet := participante; participante.LoadStructure(LMinhaEstrutura); //Carrego a estrutura
part_funcionario := TFDMemTable.Create(nil); //MemTable Detail dtsFilho.DataSet := part_funcionario; part_funcionario.LoadStructure(LMinhaEstruturaDetail); //Carrego a estrutura do filho
{Faço o relacionamento MasterDetail} participante.Open;
part_funcionario.Open; part_funcionario.MasterSource := dtsMaster; part_funcionario.MasterField := 'MeuIDPai'; part_funcionario.DetailField := 'MeuIDFK'; part_funcionario.IndexFieldName := 'MeuIDFK';
{Carrego minha MemTable Principal com todo o json aninhado} participante.LoadFromJSON(LMeuDadoJSON) //Todo meu Array Participante,conforme meu json abaixo
{Problema} participante.ToJSONObect -> A saida do JSon so ta retornando o Json Pai, falta aninhar ao filho.
So por questão de conhecimento, tentei também alterar o nome da memtable para mtparticipante e mtpart_funcionario e não resolveu.
Meu JSON: