Biblioteca lkJSON - Deserialização esta colocando (?) no lugar de acentos, como consertar isso?

Delphi

08/10/2015

Bom dia pessoal, fiz um método que faz comunicação com um web service rest e me devolve um json de clientes, consigo deserializar e salvar no banco normal, o problemas são os caracteres especiais como acentos que não esta sendo reconhecidos pelo biblioteca do LkJson.

O método esta +- assim:

jl := TlkJSON.ParseText(jsonString) as TlkJSONlist;
    if Assigned(jl) then
      begin
       for i := 0 to jl.Count-1 do
         begin
          ja := jl.Child[i] as TlkJSONobject;
          produto := TProduto.Create;
          produto.codigo         := VarToStr(ja.Field['codigo'].Value);
          produto.descricao      := VarToStr(ja.Field['descricao'].Value);
          produto.estMax         := (ja.Field['estMax'].Value);
          produto.precoVenda     := ja.Field['precoVista'].Value;
          produto.unidadeMedida  := ja.Field['unidadeMedida'].Value;
          produto.estMin         := ja.Field['estMin'].Value;
          produto.status         := VarToStr(ja.Field['status'].Value);
          produto.custoMedio     := ja.Field['custoMedio'].Value;
          produto.codAnp         := VarToStr(ja.Field['codAnp'].Value);
          produto.diasVencimento := (ja.Field['diasVencBalanca'].Value);
          produto.codigoNcm      := VarToStr(ja.Field['codigoNcm'].Value);
          produto.tipoProduto    := tipoProd.EnumTipoProd(VarToStr(ja.Field['tipoProduto'].Value));
          produto.prodBalanca    := VarToStr(ja.Field['prodBalanca'].Value);

...




No json o campo esta com acento normal, quando deserializa com o LkJson fica um '?' no lugar do caractere.
Danilo Pereira

Danilo Pereira

Curtidas 0

Respostas

Tone Costa.

Tone Costa.

08/10/2015

experimente usar utf9decode para as variaveis.
GOSTEI 0
Danilo Pereira

Danilo Pereira

08/10/2015

Consegui resolver em parte alterando a linha:

jl := TlkJSON.ParseText(jsonString) as TlkJSONlist;


para

   jl := TlkJSON.ParseText(TEncoding.ASCII.GetString(TEncoding.ASCII.GetBytes(jsonString))) as TlkJSONlist;


porém agora os caracteres que tem acento estão vindo sem.
GOSTEI 0
POSTAR