ASP Classic: der Iteration einer json2.js Objekt
Ich bin immer ein JSON-Ergebnis in ASP-Classic so:
<script language="JScript" runat="server" src="json2.js"></script>
<%
Response.ContentType = "text/html"
Dim HttpReq
Dim Diamond
Set HttpReq = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
HttpReq.open "GET", "http://url.com?id=" & Request.QueryString("id"), False
HttpReq.send
res = HttpReq.responseText
Set res = JSON.parse(res)
%>
Es funktioniert.
Sagen wir mal das JSON-Ergebnis wird wie folgt Aussehen:
res = {
gallery: {
image1: { img: 'source url', thumb: 'source url' },
image2: { img: 'source url', thumb: 'source url' },
image3: { img: 'source url', thumb: 'source url' }
},
another_param1: 'foo',
another param2: 'bar',
...
}
Möchte ich iteriere die gallery-Objekt, nicht in JScript, aber in VBScript.
Wie kann ich das tun?
Vielen Dank im Voraus.
im Zusammenhang stackoverflow.com/questions/1019223/...
InformationsquelleAutor pilau | 2012-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es wirklich notwendig ist, um aufzählen von Eigenschaften eines Objekts in VBScript, dann werden Sie brauchen, um zu konvertieren das Objekt in ein dictionary. Hier ist eine einfache Funktion, die ein JScript-Objekt und zurück
Scripting.Dictionary
:Mit dieser Funktion in Ihrer Seite können Sie nun konvertieren Sie die
gallery
- Eigenschaft, um ein Wörterbuch:Kannst du dann iterieren:
Gesagt haben, dass es sich lohnt, darauf hinzuweisen, dass Eigenschaften mit den Namen als eine Serie wie image1, image2 sind eine schlechte Wahl. Es wäre besser, wenn die JSON definiert, die Galerie als ein einfaches array, anstatt ein Objekt. Wenn Sie in der Lage sind, Einfluss auf die JSON-design sollten Sie verlangen, dass Sie geändert werden.
Warum ein array? In diesem Fall wird ein Wörterbuch ausreichend. Arrays haben eine Feste dimension, deshalb das anfügen eines Elements in ein array ist ineffizient in VBScript.
Auch die JSON-die "Galerie" wird implementiert werden als ein array sowieso wie Anthony sagt, und dann in VBScript wird, muss analysiert werden, in ein Wörterbuch, wie Sie sagen, Guido. Ich habe keine Ahnung, wie zu tun, dass, obwohl, und würde schätzen, dass ein code-Beispiel sehr viel 🙂 unterm Strich muss ich Durchlaufen dieses Objekt in VBScript, nicht JScript. Danke.
Brauchen Sie eine VBScript-array oder ein JScript-array ausreichend (Sie können die foreach-Elemente in einem JScript-array). Um eine JScript-array ändern Sie die JSON zu etwas sensable. Wenn Sie möchten, eine VBScript-array ist die Reihenfolge der Elemente im array wichtig?
Ich brauche eine VBScript-array -, Dank - und die Reihenfolge der Elemente in der Galerie, ist nicht wichtig. Ich will nur haben, haben, Durchlaufen Sie diese Liste der Elemente, die in VBScript schließlich.
InformationsquelleAutor AnthonyWJones
Wenn das JSON ist einfach und immer die gleiche Struktur, die Sie analysieren können, es selbst, es ist schnell und einfach, kein Bedürfnis für eine externe Bibliothek.
InformationsquelleAutor peter
AXT(ASP Xtreme Evolution) JSON-parser wird der trick für Sie.
Google es einfach.
Sobald Sie umfassen AXT in Ihrer Datei;
Bearbeiten---
Wenn Sie benötigen, um einen loop zu erstellen für die Galerie;
dim-Taste : für jeden Schlüssel im Info.keys()
Antwort.schreiben( key & vbNewline )
neben
AXT ist ein einfaches Beispiel für das auch. Ich habe es in meiner Nachricht.
HM, das Beispiel ist im Allgemeinen für die Iteration eines dictionary. Keine Notwendigkeit für AXE in diesem Fall.
InformationsquelleAutor Efe