Interpretar una respuesta JSON
Publicado: 2018-06-25 15:59 @708
Hola, amigos, tengo el siguiente script para capturar un endpoint en JSON.
Al ejecutar lo anterior recibo esto:
[{"Numero":100,"Fecha":"2018-01-01","CampoC":[]},{"Numero":200,"Fecha":"2018-01-02","CampoC":[]}]
Ahora bien, si cambio las últimas dos líneas por
recibo:
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at GER_DATOS.pl line 29.
Entonces no sé cómo tomar los valores que me entrega el endpoint ya que al dejarlos como string no sé cómo interpretarlo y si lo trato de decodificar me arroja el error anterior. Favor, su ayuda para capturar la información que recibo desde esa API.
Gracias.
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use utf8::all;
- use JSON;
- use LWP::Simple;
- use Data::Dumper;
- my $ua = LWP::UserAgent->new;
- my $server_endpoint = "http://comercio.comerxxx.com/"; #URL contains actual URL
- # set custom HTTP request header fields
- my $req = HTTP::Request->new( GET => $server_endpoint );
- $req->header( 'content-type' => 'application/json' );
- $req->header( 'Accept' => 'application/json' );
- $req->header( 'secret' => 'secreto' );
- $req->header( 'dateDesde' => '2018-06-10' );
- $req->header( 'dateHasta' => '2018-06-30' );
- my $response = $ua->request($req)->as_string;
- print $response;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Al ejecutar lo anterior recibo esto:
[{"Numero":100,"Fecha":"2018-01-01","CampoC":[]},{"Numero":200,"Fecha":"2018-01-02","CampoC":[]}]
Ahora bien, si cambio las últimas dos líneas por
Using perl Syntax Highlighting
- my $response = $ua->request($req);
- my $data = decode_json($response);
- print $data;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
recibo:
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at GER_DATOS.pl line 29.
Entonces no sé cómo tomar los valores que me entrega el endpoint ya que al dejarlos como string no sé cómo interpretarlo y si lo trato de decodificar me arroja el error anterior. Favor, su ayuda para capturar la información que recibo desde esa API.
Gracias.