vb.net – 在Web服务中接收JSON数组作为参数
发布时间:2020-12-17 07:16:49 所属栏目:百科 来源:网络整理
导读:我正在使用Visual Basic .NET 3.5中编写的Web服务来接收从其他应用程序发送的 JSON数组. 我正在发送一个像这样的JSON字符串: [{"idRecoleccion":1,"PIN":"553648138"},{"idRecoleccion":2,"PIN":"553648138"}] 我在Visual Basic .NET中收到的代码如下: Web
我正在使用Visual Basic .NET 3.5中编写的Web服务来接收从其他应用程序发送的
JSON数组.
我正在发送一个像这样的JSON字符串: [{"idRecoleccion":1,"PIN":"553648138"},{"idRecoleccion":2,"PIN":"553648138"}] 我在Visual Basic .NET中收到的代码如下: <WebMethod()> _ Public Function ConfirmaRecol(ByVal ArrayConfirma() As cConfirmaRecoleccion) As Boolean For X = 0 To ArrayConfirma.Length -1 ' Usage example ArrayConfirma(X).PIN ArrayConfirma(X).idRecoleccion End If Next End Function 我正在用这种方式定义类cConfirmaRecolecciones: Public Class cConfirmaRecoleccion Dim p_idRecoleccion As Integer Dim p_PIN As String Public Property idRecoleccion() As Integer Get Return p_idRecoleccion End Get Set(ByVal value As Integer) p_idRecoleccion = value End Set End Property Public Property PIN() As String Get Return p_PIN End Get Set(ByVal value As String) p_PIN = value End Set End Property End Class 我只是想能够使用由JSON发送的1个整数和1个字符串的数组,这就是我试图以他的方式使用它的原因. 几个重要的事情要知道: >我已经能够使用具有更简单参数的方法使用Web服务,因此我必须使用Web服务的配置是正确的. 这是我通过服务器得到的错误: {"Message":"Type u0027System.Collections.Generic.IDictionary`2[[System.String,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.Object,PublicKeyToken=b77a5c561934e089]]u0027 is not supported for deserialization of an array.","StackTrace":" at System.Web.Script.Serialization.ObjectConverter.ConvertListToObject(IList list,Type type,JavaScriptSerializer serializer,Boolean throwOnError,IList& convertedList)rn at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o,Object& convertedObject)rn at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o,Object& convertedObject)rn at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType(Object o,JavaScriptSerializer serializer)rn at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer,String input,Int32 depthLimit)rn at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)rn at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context,JavaScriptSerializer serializer)rn at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData,HttpContext context)rn at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context,WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"} 对于我如何在Visual Basic .NET中接收自定义对象数组,您是否有任何其他建议? 任何帮助将非常感谢! 解决方法
我找到了解决方案,这是正确的方法:
{"ArrayConfirma": [{"idRecoleccion":1,"PIN":"553648138"}]} 我必须指定一个数组,其中包含Web服务方法正在接收的参数的名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |