mal formé chaîne JSON, ni tableau, un objet, un nombre, une chaîne ou un atome

J'ai de la difficulté de l'analyse d'un objet json avec perl et je ne sais pas si le problème vient du json ou mon script. Voici le json:

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
      }
   ]
}

Voici le script:

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)};

Et enfin l'erreur que je reçois:

erreur

malformed JSON string, neither array, object, number, string or atom,
at character offset 86 (before "AuditExampleLogin1,\n...") at     
./script.pl line 7.

Q: quelqu'un Peut me dire si le problème vient du json ou mon script et ce qui doit changer dans les deux cas?

Pour information, le json est à venir à partir d'Alfresco api d'audit.

  • Autant que je sache, ce n'est pas JSON valide, manque des guillemets autour des valeurs.
  • J'avais exactement le même problème. J'ai une question sur le fil de l'auteur: comment accéder à l' @json variables? Je garde geting que @json est un HACHAGE en mémoire, mais je ne peux pas accéder aux variables ou d'une boucle de síy.
InformationsquelleAutor Max | 2011-11-22