Leser: 19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use strict; use warnings; my %UDIoutput = ( 'versionNo' => $VAR{'versionNo'}, 'sitetitle' => $VAR{'sitetitle'}, 'author' => $VAR{'PIDauthor'}, ); for my $key (%CONFIG){ $UDIoutput{$key} = $CONFIG{$key} if $key =~m/UserVar\d{2}Name/g; } use JSON; my $json_text = to_json(\%UDIoutput); print $json_text;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"UserVar05Name": "",
"UserVar12Name": "",
"UserVar07Name": "",
"UserVar09Name": "",
"UserVar10Name": "",
"UserVar18Name": "",
"UserVar20Name": "",
"UserVar15Name": "",
"UserVar14Name": "",
"UserVar06Name": "",
"UserVar16Name": "",
"UserVar03Name": "",
"UserVar13Name": "",
"UserVar08Name": "",
"UserVar02Name": "",
"versionNo": "1.8.3",
"UserVar11Name": "",
"sitetitle": "Wunschjob gesucht",
"author": "admin",
"UserVar01Name": "",
"UserVar04Name": "",
"UserVar19Name": "",
"UserVar17Name": "",
}
2010-10-15T18:03:20 cbxk1xgIch weiss nun aber leider nicht, wie man das mit einem Hash macht, da ein Hash ja per Definition unsortiert ist.
QuoteJSON is built on two structures:
* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
* An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
2010-10-15T18:24:41 kristianOk, wie bzw. womit willst du es auf der "anderen Seite" bearbeiten?
Einen Hash zu sortieren macht doch keinen Sinn, da man ohnehin über den key auf die value zugreift.
2010-10-15T18:31:45 kristianDann mach doch ein Array, welches du mit Hashreferenzen befüllst.
Dies Array kannst du sortieren, der JavaScriptologe kann darüber itterieren, muss dann allerdings wissen, das es jeweils ein Object (Hash) ist.
1 2
use JSON::PP; my $json_text=$JSON::PP->new()->sort_by(sub { $JSON::PP::a cmp $JSON::PP::b })->encode(\%UDIoutput);
2010-10-15T18:40:24 topegDas geht so weit ich weiß so:
Code (perl): (dl )1 2use JSON::PP; my $json_text=$JSON::PP->new()->sort_by(sub { $JSON::PP::a cmp $JSON::PP::b })->encode(\%UDIoutput);
Can't call method "new" on an undefined value at /var/www/index.mbm line 328.
1 2
use JSON::PP; my $json_text=JSON::PP->new()->sort_by(sub { $JSON::PP::a cmp $JSON::PP::b })->encode(\%UDIoutput);
1 2
use JSON::PP; my $json_text=JSON::PP->new()->pretty->sort_by(sub { $JSON::PP::a cmp $JSON::PP::b })->encode(\%UDIoutput);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"BeforeAfter": "on",
"FormatInvisible": "",
"HomePID": "static,Index_de",
"InlineFormat": "on",
"IsFirst": "",
"MetaKeywords": "MS Rheinenergie,Bilder,Fotos,Galerie",
"PIDauthor": "admin",
"TeaserShort": "So sieht es auf der noch (fast) menschenleeren MS Rheinenergie aus",
"UserVar01Name": "Test 1",
"UserVar02Name": "Test 2",
"UserVar03Name": "Test 3",
"UserVar04Name": "",
"UserVar05Name": "",
"UserVar06Name": "",
"UserVar07Name": "",
"UserVar08Name": "",
"UserVar09Name": "",
"UserVar10Name": "",
"UserVar11Name": "",
"UserVar12Name": "",
"UserVar13Name": "",
"UserVar14Name": "",
"UserVar15Name": "",
"UserVar16Name": "",
"UserVar17Name": "",
"UserVar18Name": "",
"UserVar19Name": "",
"UserVar20Name": "",
"baseURL": "http://dev2/",
"body": "Die ersten Gäste warten schon auf der Kaimauer, aber im ersten Geschoss der...",
"datestamp": "201009232010",
"defaultPID": "error/404",
"filename": "static/cat/Hingeguckt/RuhevordemSturm_de",
"internLINK": "http://dev2/?&udi=json&PID=",
"requestHOST": "dev2",
"requestURL": "http://dev2/?PID=static,cat,Hingeguckt,RuhevordemSturm_de&udi=json",
"sitetitle": "Die Ruhe vor dem Sturm",
"template": "Skin_BlueOnGrey_Main",
"timeoffset": "0",
"title": "Die Ruhe vor dem Sturm",
"versionNo": "1.8.3"
}
2010-10-15T19:19:22 cbxk1xgWenn ich das richtig verstanden habe, ist das nun die Pure Perl Variante des Moduls.