"Ошибка чтения JObject из JsonReader. Путь к пути 0 '' VB.net - PullRequest
0 голосов
/ 31 октября 2019

Итак, я создаю приложение для Android, которое отправляет через HTTP этот Json

{"InfoCustomer":[{"AWB":"SHP#.39535","NUMBOXES":"2","FB":"0.5","CUBIC":"3.14","ORIGIN":"QUITO","ACCEPT":"1","REJECT":"","SHIPTO":"GG MIAMI"}]}

Мой контроллер VB выглядит так:

<Route("image/Upload2")>
    <AllowAnonymous>
    <HttpPost>
    Public Async Function Upload2() As Task(Of HttpResponseMessage)
        Try
            Dim StringJSON As String = ""
            Dim httpRequest = HttpContext.Current.Request
            If httpRequest.Files.Count > 0 Then

                For Each file As String In httpRequest.Files
                    Dim postedFile = httpRequest.Files(file)
                    Dim fileName = postedFile.FileName


                    If file.Equals("INFOJSON") Then
                        StringJSON = System.Web.HttpUtility.UrlDecode(postedFile.ToString)
                        GuardarEnArchivo("StringJSON:" & StringJSON)
                    End If
                Next
            End If

            Dim objCrd As CargoplusService = New CargoplusService()
            Dim IdSignatureHeader As String = ""

            IdSignatureHeader = objCrd.funInsSignatureShippingDetailPOD2(StringJSON)

            '        'Return New HttpResponseMessage()
            Return Request.CreateResponse(Of String)(IdSignatureHeader)
        Catch ex As Exception
            GuardarEnArchivo(ex.ToString)
            Return New HttpResponseMessage()
        End Try
    End Function

И моя функция выглядит так:

 Public Function funInsSignatureShippingDetailPOD2(ByVal pStringJSON As String) As String
        Try
            Dim strSQL As String                                      'String donde se almacena el nombre del SP
            Dim objConn As dbConnector = New dbConnector()            'Coneccion para la base de datos
            Dim dsData As New DataSet
            Dim json As JObject = JObject.Parse(pStringJSON)
            Dim data As List(Of JToken) = json.Children().ToList      ''deserializa el json
            Dim IdSignatureHeader As Integer = 88                     'inicializa valores con -1
            Dim InsWhenUpd As Integer = 99
            Dim NewSignature As String = "0"                           'Declaracion de de un string vacio  
            For Each item As JProperty In data                        'itera cada item
                item.CreateReader()
                Select Case item.Name
                    Case "InfoCustomer"
                        For Each msg As JObject In item.Values
                            'GuardarEnArchivo(msg.ToString())
                            Dim IdShippingDetail As String = msg("IdShippingDetail").ToString
                            Dim Boxes As String = msg("Boxes").ToString
                            Dim Aceptado As String = msg("Aceptado").ToString
                            NewSignature = msg("NewSignature").ToString
                            Dim IdRelCompanyType As String = msg("IdRelCompanyType").ToString
                            Dim ShippingDate As String = msg("ShippingDate").ToString
                            Dim ActiveSignature As String = msg("ActiveSignature").ToString
                            Dim AWB As String = msg("AWB").ToString
                            Dim FB As String = msg("FB").ToString
                            Dim Cubic As String = msg("Cubic").ToString
                            Dim Origin As String = msg("Origin").ToString
                            Dim ShipToName As String = msg("ShipToName").ToString

                            'If NewSignature.Equals("0") Then 'Crear nuevos registros en la tabla CM_SHIPPING_DETAIL_POD
                            ' GuardarEnArchivo("CREAR NUEVA FIRMA")
                            strSQL = "usp_InsSignatureShippingDetailPOD"
                            dsData = objConn.executeSQLDataset(strSQL, {{"@IdSignatureHeader", IdSignatureHeader},
                                                                    {"@SignatureDate", Convert.ToDateTime(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))},
                                                                    {"@SignaturePath", "pPathImage"},
                                                                    {"@SignatureComments", ""},
                                                                    {"@IdShippingDetailPOD", "-1"},
                                                                    {"@IdShippingDetail", IdShippingDetail},
                                                                    {"@Boxes", Boxes},
                                                                    {"@ShippingAccepted", Aceptado},
                                                                    {"@InsOrUpd", NewSignature},
                                                                    {"@IdRelCompanyType", IdRelCompanyType},
                                                                    {"@ShippingDate", ShippingDate},
                                                                    {"@Active", ActiveSignature},
                                                                    {"@AWB", AWB},
                                                                    {"@FB", FB},
                                                                    {"@Cubic", Cubic},
                                                                    {"@Origin", Origin},
                                                                    {"@InsWhenUpd", InsWhenUpd},
                                                                    {"@ShipToName", ShipToName}
                                                                    })

                            IdSignatureHeader = dsData.Tables(0).Rows(0).Item("IdSignatureHeader")
                            'End If
                        Next
                End Select
            Next

            If NewSignature.Equals("0") Then
                Return "Executed"
            Else
                Return "Not Executed"
            End If
        Catch ex As Exception
            GuardarEnArchivo(ex.ToString)
            Return ex.Message + pStringJSON + "asi es"
        End Try
    End Function

Как новый разработчик веб-сервисов, я понятия не имею, как правильно отлаживать мой веб-сервис. Единственный способ, которым я могу это сделать, - это протестировать сервис через онлайн-тестеры API, который возвращает следующее исключение: Ошибка чтения JObject fromJsonReader. Путь '', строка 0, позиция 0, пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...