Thread Regulärer Ausdruck matcht nicht korrekt - JSON (10 answers)
Opened by styx-cc at 2017-11-11 17:57

styx-cc
 2017-11-12 10:23
#187609 #187609
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Quote
PS: Dein JSON String erzeugt bei mir eine Fehlermeldung.

Der Grund warum ich poste, aneinandergereihtes JSON aufteilen ...

Lies doch noch mal genau, was ich machen will bzw. jetzt mache.
"Ich versuche aneinandergereihte JSON-Datensaetze in einzelne aufzuteilen, [...]"

Dazu das Beispiel:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $string       = '[1,962,[["x",0,"0.1","1.106"]]][1,963,[["x",0,"0.663","0.0"]]]';
$string .= '[1][1,562,[["x",0,"0.579","1.1"]]][1,563,[["x",0,"0.546","0.0"],["x",0,"0.94","1.8"]]]';

Erhofft:
[1,962,[["x",0,"0.1","1.106"]]]
[1,963,[["x",0,"0.663","0.0"]]]
[1]
[1,562,[["x",0,"0.579","1.1"]]]
[1,563,[["x",0,"0.546","0.0"],["x",0,"0.94","1.8"]]]

Realitaet:
[1,962,[["x",0,"0.1","1.106"]]]
[["x",0,"0.663","0.0"]]]
[1,562,[["x",0,"0.579","1.1"]]]


Anschließend wende
Code: (dl )
my @matches = ( $string =~ m/(\[.+?\])(?=\[|\z)/g );
auf den gegebenen String an und erhalte valides JSON.

Jetzt funktioniert auch das von dir vorgeschlagene JSON-Modul (jedes Element im Array @matches enthaelt jetzt valides JSON, welches du mit decode_json parsen kannst).

MfG
Last edited: 2017-11-12 10:25:06 +0100 (CET)
Pörl.

View full thread Regulärer Ausdruck matcht nicht korrekt - JSON