Ich entwickle geruhsamen Web-Service mit vb.net web api 2, ich versuche Parameter aus dem Körper zu passieren meine gespeicherte Prozedur auszuführen,convert Objekt json in vb .net oder C# .net
{
"id": "2016",
"Type":"1",
"Year": "1"
}
hier die Daten ich bin aus dem Körper vorbei, und hier ist Fehler
{ „message“: „System.InvalidCastException: Konvertierung vom Typ ‚JObject‘‚String‘zu geben ist nicht gültig . \ r \ n um Microsoft.VisualBasic.CompilerServices.Conversions.ToString (Objekt Wert) \ r \ n bei WebApplication7.Controllers.SubjectsController.getSubjects (Object Daten) in C: \ Benutzer \ Junaida \ Dokumente Visual Studio 2015 \ Projects \ \ WebApplication7 \ WebApplication7 \ Controllers \ SubjectsController.vb: line 30" }
mein vb Code:
<HttpPost>
Function getSubjects(<FromBody> ByVal data As Object) As IHttpActionResult
Try
Using entities As IAPD_DBEntities = New IAPD_DBEntities()
Dim year, type, id As String
Dim dictionary = JsonConvert.DeserializeObject(data) 'As Dictionary(Of String, String)
Dim startno As Integer = 0
If year = 1 Then
startno = 0
ElseIf year = 2 And type = 1 Then
startno = 366
ElseIf year = 2 And type = 3 Then
startno = 52
ElseIf year = 2 And type = 2 Then
startno = 13
End If
dictionary.Add("id", id)
dictionary.Add("Type", type)
dictionary.Add("Year", year)
Return Ok(entities.SP_Messages_GetinfoArchive_ByID(startno, id, type, year).ToList)
End Using
Catch e As Exception
Return BadRequest(e.ToString)
End Try
End Function
End Class
https://Stackoverflow.com/users/1220550/peter-b danke, habe ich bereits übergeben Parameter des Typs JObject und erstellt drei Variablen vom Typ JValue und geben sie den Wert von data.gettoken ("id"), und es hat funktioniert –