Ich versuche, mit JSON eine Hashtabelle an meinen Webservice zu senden. Sie können jedoch aus irgendeinem Grund kein wörterbuchartiges Objekt senden.Wie schicke ich eine Hashtabelle an einen asmx Webservice?
Eine Lösung, die anscheinend funktioniert, ist "List (Of KeyValuePair (Of String, String))", als Ausgang sowieso:
<WebMethod()> _
Public Function test() As List(Of KeyValuePair(Of String, String))
Dim ret As New List(Of KeyValuePair(Of String, String))
ret.Add(New KeyValuePair(Of String, String)("foo", "5"))
ret.Add(New KeyValuePair(Of String, String)("bar", "baz"))
Return ret
End Function
Ausgänge (in json): [{ "Key": "foo" "Value", "5"}, { "Key": "bar", "Wert": "baz"}]
Wenn ich dies in Javascript erneut einreichen will, muss ich diese Funktion nutzen:
<WebMethod()> _
Public Sub test2(ByVal obj As List(Of KeyValuePair(Of String, String)))
Dim dummy As UInt16 = obj.Count
End Sub
Ich nenne es mit diesem als JSON-Parameter-String:
'{"obj": [{"Key":"foo","Value":"5"},{"Key":"bar","Value":"baz"}]}'
Dies gibt einen Fehler zurück. Kein Fehler per se, aber der Inhalt von 'obj' ist eine Liste, die 2 Elemente enthält, aber wenn ich sie im Debugger anschaue, sind beide Nothing (oder null für C# Leute).
Wie kann ich gepaarte Daten von Javascript an meinen Webservice senden?
Funktioniert nicht in Kombination mit der Liste (von KeyValuePair()). Brauche ich einen anderen Objekttyp? – Tominator
IIRC Dictionary passt ziemlich gut in MVC, nicht so vertraut mit dem Service-Aufruf, oder wie Dinge weitergegeben werden ... zitiert nicht die Zeichenfolge Arbeit? Es tut mir leid, dass ich hier ein bisschen vage bin, nur mit JS vertrauter als die Kommunikation, oder was im Kommunikationskanal kodiert wird. –
Tracker1
Ich hatte das umgekehrte Problem - eine Hashtabelle im JSON-Format von MVC zurückgeben - und es war einfach wie Dictionary zurückgeben. Ziemlich großartig eigentlich. –