Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: yves.menge am 09.01.13 - 09:02:09
-
Hallo Zusammen
Irgendwie komme ich mit einem bestimmten Array nicht klar! Ich bin überzeugt jemand von Euch hat mir einen bahnbrechenden Tipp, wie ich auf die Werte (url, id, name....) des Array VPIECES mittels Lotusscript zugreifen kann?
(http://img850.imageshack.us/img850/2190/scriptdebuggeribmlotusn.png)
Danek für eure Inputs!
-
Versuch mal
VPIECES.users.M_VDATA(0).M_VDATA.url
-
Hallo Glombi
Danke für den schnellen Tipp, das habe ich auch bereits versucht erhalte jedoch folgende Fehlermeldung:
(http://i.imgur.com/yCfsT.png)
-
Ist ja ein tolles Konstrukt und das letzte Gleid der Kette offenbar eine Liste. Also müsste es so gehen:
VPIECES.users.M_VDATA(0).M_VDATA("url")
Andreas
-
Hallo Glombi
Frisst er auch nicht :( Naja ich habe das Konstrukt so nicht selbst erstellt, das wird durch die JSONReader Klasse von Snapps so erstellt :(
Ich versuche genau genommen nur eine JSON Antwort sinnvoll weiter zu verarbeiten aber hierzu gibt es keine Lotus Script interne möglichkeit und in Java kenne ich mich nur wenig aus...
Yves
-
Hallo Yves,
das hatte ich auch schon mal, es hilft - glaube ich - nur wenn man wirklich für jede Ebene eine Variable definiert.
Also z.B.
dim varUnterEbene1 as Variant
dim varUnterEbene2 as Variant
dim varUnterEbene3 as Variant
varUnterEbene1 = VPIECES.User
varUnterEbene2 = varUnterEbene1(0)
varUnterEbene3 = varUnterEbene2.M_VDATA
ergebnis = varUnterEbene3("url" )
Probier das mal aus, vielleicht hilft das dir weiter ... ansonsten forall Schleifen in den Bereichen, wo's nicht klappen will.
-
OK, das gibt ja dann einen gewissen "nonsense-zusatzaufwand" :))
Hast du eventuell eine sinnvollere Art gefunden, mit JSON umzugehen?
-
Hallo Yves,
das hatte ich auch schon mal, es hilft - glaube ich - nur wenn man wirklich für jede Ebene eine Variable definiert.
Also z.B.
dim varUnterEbene1 as Variant
dim varUnterEbene2 as Variant
dim varUnterEbene3 as Variant
varUnterEbene1 = VPIECES.User
varUnterEbene2 = varUnterEbene1(0)
varUnterEbene3 = varUnterEbene2.M_VDATA
ergebnis = varUnterEbene3("url" )
Probier das mal aus, vielleicht hilft das dir weiter ... ansonsten forall Schleifen in den Bereichen, wo's nicht klappen will.
Sorry wenn ich das hier noch mal aufwärme, aber ich habe jetzt dasselbe Problem. Und bei Deiner Lösung hier funktioniert schon der erste Eintrag
varUnterEbene1 = VPIECES.User
nicht. Ich bekomme die Fehlermeldung:
Variant does not contain an object
Mit einer Forall Schleife komme ich eine Ebene tiefer, kann dann aber immer noch nicht auf die Items zugreifen.
In der angehängten Grafik ist es die Variable "ResultList". Hier möchte ich gerne auf den Wert von M_ICOUNT und natürlich auf die Werte von
Gruß Matthias Kurzer
-
schon mal die JSON Klassen ausprobiert ?
http://www.openntf.org/projects/pmt.nsf/ProjectLookup/JSON%20LotusScript%20Classes
-
Sorry, aber da verstehe ich nicht ganz, was Du damit meinst.
Ich habe das JSON-Object vResults in ein Variant vPieces "umgewandelt". Mit einer ForAll Schleife habe ich daraus RESULTLIST bekommen. Ab hier funktioniert eine ForAll schleife nicht mehr, um in die tieferen Ebenen (und es geht noch sehr viel tiefer!) zu kommen. Daher meine Frage, wie ich zum einen auf den Wert M_ICOUNT zugreifen kann, da ich damit heraus bekomme, wieviele Elemente das Array hat. Und zum anderen möchte ich auf dieses Array zugreifen. Es ist genauso aufgebaut, es gibt wieder ein M_VDATA und ein M_ICOUNT und Values, die teilweise wieder Arrays enthalten.
Leider finde ich nirgendwo ein Beispiel, wo so ein JSON-Object bis zu einem einzelnen Wert hinunter ausgelesen wird...
-
schon mal mit UBOUND probiert?
-
Ja, die Zeile
AnzEventsJSON = UBound(resultlist)
liefert "Type missmatch"
???