GARANTIR DESCONTO

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

08/10/2015

0

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

Responder

Posts

09/10/2015

Tone Costa.

experimente usar utf9decode para as variaveis.
Responder

Gostei + 0

09/10/2015

Danilo Pereira

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.
Responder

Gostei + 0

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

Aceitar