Tengo problemas para analizar un objeto json con perl y no sé si el problema proviene del json o de mi secuencia de comandos. Aquí está el JSON:cadena JSON malformada, ni matriz, objeto, número, cadena o átomo
test.json
{
"count":3,
"entries":
[
{
"id":85,
"application":AuditExampleLogin1,
"user":admin,
"time":"2011-11-22T10:29:37.422Z",
"values":
null
},
{
"id":87,
"application":AuditExampleLogin1,
"user":admin,
"time":"2011-11-22T10:30:56.235Z",
"values":
null
},
{
"id":89,
"application":AuditExampleLogin1,
"user":admin,
"time":"2011-11-22T10:33:15.000Z",
"values":
null
}
]
}
aquí la secuencia de comandos:
script.pl
#!/usr/bin/perl -w
use strict;
use JSON;
open FILE, 'test.json' or die "Could not open file inputfile: $!";
sysread(FILE, my $result, -s FILE);
close FILE or die "Could not close file: $!";
my @json = @{decode_json($result)};
Y, finalmente, el error que estoy consiguiendo:
error
malformed JSON string, neither array, object, number, string or atom,
at character offset 86 (before "AuditExampleLogin1,\n...") at
./script.pl line 7.
Q: ¿Puede alguien decirme si el problema proviene de la JSON o mi guión y lo que debe cambiar en cualquier caso?
FYI el json is coming from Alfresco auditing api.
yo sepa que no es válida JSON, comillas alrededor de los valores que faltan. – Mat
Estaba lidiando exactamente con el mismo problema. Tengo una pregunta para el autor del hilo: ¿cómo accedes a las variables @json? Sigo averiguando que @json es un HASH en la memoria, pero no puedo acceder a las variables ni recorrerlo. –