• Publicidad

Extraer información contenida en texto JSON

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Extraer información contenida en texto JSON

Notapor jimr1984 » 2017-12-20 11:11 @507

Hola.

Por favor, necesito si alguien puede ayudarme a extraer información.

{"Data":{"Cliente":{"Id":"939482","Nombre":"MENDEZ JOSE PEDRO GUME ","CodigoCI":"4222769ua"},"TotalPuntos":0,"DetallePuntos":[{"Descripcion":"Saldo Acumulado","Fecha":"20/09/2017","Puntos":0}],"TotalElements":1},"Errors":[],"Messages":[],"HasErrors":false,"HasMessages":false}

Necesito extraer los valores contenidos en: Id , Nombre , CodigoCI , TotalPuntos , Fecha, Puntos

Logré extraer el Id:

print "CODIGO CLIENTE $2 " if $content =~ m/(\"Id\":")(\d+)/g;

pero me atasqué en extraer lo demás.

Por favor, si pueden ayudarme.

Como algo adicional, para extraer el contenido del nombre intento algo así:

print "NOMBRE $1 " if $content =~ m/\"Nombre\":"(.+)/g;

pero extrae toda la cadena. No corta en ",.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Publicidad

Re: Extraer información contenida en texto JSON

Notapor explorer » 2017-12-20 11:48 @533

Es muchíiiiiiiiiiiiisimo más cómodo aprovecharse del trabajo de otras personas.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use v5.18;
  3. use JSON;
  4.  
  5. my $json = '{"Data":{"Cliente":{"Id":"939482","Nombre":"MENDEZ JOSE PEDRO GUME ","CodigoCI":"4222769ua"},"TotalPuntos":0,"DetallePuntos":[{"Descripcion":"Saldo Acumulado","Fecha":"20/09/2017","Puntos":0}],"TotalElements":1},"Errors":[],"Messages":[],"HasErrors":false,"HasMessages":false}';
  6.  
  7. my $json_decoded = decode_json $json;
  8.  
  9. #use Data::Dumper;
  10. #say Dumper $json_decoded;
  11.  
  12. say "Id:          $json_decoded->{Data}{Cliente}{Id}";
  13. say "Nombre:      $json_decoded->{Data}{Cliente}{Nombre}";
  14. say "CodigoCI:    $json_decoded->{Data}{Cliente}{CodigoCI}";
  15. say "TotalPuntos: $json_decoded->{Data}{TotalPuntos}";
  16. say "Fecha:       $json_decoded->{Data}{DetallePuntos}[0]{Fecha}";
  17. say "Puntos:      $json_decoded->{Data}{DetallePuntos}[0]{Puntos}";
  18.  
  19. __END__
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Id:          939482
Nombre:      MENDEZ JOSE PEDRO GUME
CodigoCI:    4222769ua
TotalPuntos: 0
Fecha:       20/09/2017
Puntos:      0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer información contenida en texto JSON

Notapor jimr1984 » 2017-12-20 13:17 @595

Muchas gracias, estimado, fue de gran ayuda.

Ya resolví el problema. Gracias.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Re: Extraer información contenida en texto JSON

Notapor jimr1984 » 2019-02-06 16:15 @719

Por favor, ayuda con este json:

{"error_code":0,"result":{"id":"556dcc6d-2598-11e9-b0b8-98f2b3ed95b8","email":"[email protected]","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NNTk4LTExZTktYjBiOC05OGYyYjNlZDk1YjgiLCJpYXQiOjE1NDk0ODM4MjUsImV4cCI6MTU0OTUwNTQyNSwibXNpc2RuIjoiNjA4NDQ4MjEiLCJpbXNpIjoiIiwiaW1laSI6IiJ9.ZwDSkwWYbxzD6HOUJcl8LE1-SmrzWza8","status":"A","terms":"sssssss"}}

¿Cómo puedo extraer el valor de id, email y token?

Intenté así y no me dio resultado:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $json_decoded = decode_json $json;
  2.  
  3. #use Data::Dumper;
  4. #say Dumper $json_decoded;
  5.  
  6. print  $json_decoded->{error_code}[0]{result}{id}";
  7. print  $json_decoded->{error_code}[0]{result}{email}";
  8. print  $json_decoded->{error_code}[0]{result}{token}";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Favor, si pueden ayudarme. Gracias.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Re: Extraer información contenida en texto JSON

Notapor explorer » 2019-02-06 20:02 @876

Las comillas me dan error de sintaxis.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron