ok also etwas genauer... ein XML Stream von einer Standard Domino Ansicht (?ReadViewEntries) sieht ja z.B. so aus:
<viewentries timestamp="20100719T152910,65Z" toplevelentries="3">
<viewentry position="1" unid="7640ED7B76376A7EC12577650054EF56" noteid="8F6" siblings="3">
<entrydata columnnumber="0" name="Feld01">
<text>Doc01 - Wert01</text></entrydata>
<entrydata columnnumber="1" name="Feld02">
<text>Doc01 - Wert02</text></entrydata>
</viewentry>
<viewentry position="2" unid="7EE2AFCFDB3F29AEC12577650054F6FC" noteid="8FA" siblings="3">
<entrydata columnnumber="0" name="Feld01">
<text>Doc02 - Wert01</text></entrydata>
<entrydata columnnumber="1" name="Feld02">
<text>Doc02 - Wert02</text></entrydata>
</viewentry>
<viewentry position="3" unid="8A1A2B368EEC3369C12577650054FC46" noteid="8FE" siblings="3">
<entrydata columnnumber="0" name="Feld01">
<text>Doc03 - Wert01</text></entrydata>
<entrydata columnnumber="1" name="Feld02">
<text>Doc03 - Wert02</text></entrydata>
</viewentry>
</viewentries>
Ein normaler XML-Stream ohne Attribute wie z.B.
<books>
<book>
<isbn>1</isbn>
<title>Title of 1</title>
<author>Author of 1</author>
</book>
</books>
bekomm ich ohne Probleme eingelesen. Nur wie siehts mit den Attributen aus? Habe nach ein paar Anwendungsbeispielen gesucht, wie man die Attribute mappen kann (attributeMap:{}) jedoch leider nichts genaues.
Hast du evtl. ein kleines Beispiel da, wie du das bei dir machst? :-/
Liebe Grüße,
Markus
Ok... also folgender Code funktioniert wenn ich den JSON-Code einer Ansicht entsprechend anpasse und in einer Datei anpasse:
<html>
<head>
<title>Dojo</title>
<style type="text/css">
@import "dojo/resources/dojo.css";
@import "dojox/grid/resources/Grid.css";
@import "dojox/grid/resources/tundraGrid.css";
.grid {
width: 70em;
height: 15em;
}
</style>
<script type="text/javascript"
src="dojo/dojo.js" djConfig="isDebug:true, parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dojo.parser");
var jsonStore = new dojo.data.ItemFileReadStore({url: "view.json"});
</script>
</head>
<body class="tundra">
<table id="gridNode" jsId="grid" dojoType="dojox.grid.DataGrid"
query="{ noteid: '*' }" store="jsonStore">
<thead>
<tr>
<th field="unid">Note-ID</th>
</tr>
</thead>
</table>
</body>
</html>
Überarbeiteter JSON-Code der Ansicht:
{ "@timestamp" : "20100719T131752,62Z",
"@toplevelentries" : "6",
"items" : [ { "noteid" : "95E",
"@position" : "1",
"@siblings" : "6",
"unid" : "C125775300255388C125775F0020E5E1",
"entrydata" : [ { "@columnnumber" : "0",
"@name" : "Subject",
"text" : { "0" : "--- Private Entry ---" }
} ]
},
{ "noteid" : "962",
"@position" : "2",
"@siblings" : "6",
"unid" : "C125775300255388C125775F0029B14C",
"entrydata" : [ { "@columnnumber" : "0",
"@name" : "Subject",
"text" : { "0" : "Eintrag 001" }
} ]
}
]
}
Den Code der Ansicht musste ich entsprechend anpassen. Hier der originale
{ "@timestamp" : "20100719T131752,62Z",
"@toplevelentries" : "6",
"viewentry" : [ { "@noteid" : "95E",
"@position" : "1",
"@siblings" : "6",
"@unid" : "C125775300255388C125775F0020E5E1",
"entrydata" : [ { "@columnnumber" : "0",
"@name" : "Subject",
"text" : { "0" : "--- Private Entry ---" }
} ]
},
{ "@noteid" : "962",
"@position" : "2",
"@siblings" : "6",
"@unid" : "C125775300255388C125775F0029B14C",
"entrydata" : [ { "@columnnumber" : "0",
"@name" : "Subject",
"text" : { "0" : "Eintrag 001" }
} ]
}
]
}
Wie man sieht, musste ich einmal "viewentry" in "items" umbenennen sowie die @-Zeichen davor entfernen, damit der query in dojo funktionierte.
Meine Frage ist nun, wie ich einmal mit den @-Zeichen umgehe und wie ich dojo sagen kann, dass der nicht auf die "items" gehen soll wie in allen anderen JSON-Outputs sondern auf die "viewentrys".
Hoffe ihr versteht mein Problem...
Liebe Grüße,
Markus
Doch , sind doch auch beim Link dabei
{
"Date": {
type: Date,
deserialize: function(value){
return dojo.date.stamp.fromISOString(value);
}
}
}
Selbst gemacht hab ich das aber noch nicht wenn Du das meinst ;-)