Spanish Problemas al asignar valores desde el objeto MAP

desof

Well-Known Member
Licensed User
Longtime User
Hola,

Tengo este troso de código que esta funcionando bien pero que no logro que me escriba el valor devuelto en un Label como se podrá ver en el mismo.
Adjunto la imagen y como se ve en la ventana emergente ListaDta.Get contiene datos solo que me devuelve Null


B4X:
ub JobDone(Job As HttpJob)
    ProgressDialogHide
    If Job.Success Then
        Dim res As String
        res = Job.GetString
        Log("Back from Job:" & Job.JobName )
        Log("Job Text: " & res)
        Dim parser As JSONParser
        parser.Initialize(res)
      
        Select Job.JobName
            Case "GetLista"
                Dim ListMode As List
                Dim lst As List
                Dim estado As String
                lst.Initialize
                ListMode = parser.NextArray 'returns a list with maps
                If ListMode.Size == 0 Then
             
                Else
                    For i = 0 To ListMode.Size -1
                        Dim ListaData As Map
                        ListaData = ListMode.Get(i)
                        estado = ListaData.Get("estado")
                        'Log(estado)
                        If estado <> 2 Then
                            If estado == "null" Then
                                 'TRAE LO DATOS CORRECTOS PERO NO ME LO DEJA EN EL LABEL ??
                                 ' ME DEVUELVE NULL 
                                lbFarmacia.Text =(ListaData.Get("farmacia"))
                                ToastMessageShow(ListaData.Get("farmacia"), False)
                            End If
                        Else
                            ToastMessageShow(ListaData.Get("mensaje"), False)
                        End If
                        ProgressDialogHide
                    Next          
                End If
        End Select
    End If

kXZ5uKjZ6.png
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Hay varias cosas del código que tendrias que corregir, entre otras verificar con dos signos igual "==", se hace con uno , otra es que si trabajas con un string la comparación debe ir entre comillas, quizas en esta ocasión te funcione, pero en otras te dará error y te podrás volver loco para encontrarlo. Vale que en B4A puedes hacer asignaciones directas de variables diferentes, pero te aconsejo que mantengas los formatos, por que como te dije en otras ocasiones te puede dar error
B4X:
  If estado <> 2 Then  ' no es del todo correcto, estado es un string

  If estado <> "2"  Then  así si es correcto

Y después tu pregunta:
B4X:
If estado == "null"  Then 'TRAE LO DATOS CORRECTOS PERO NO ME LO DEJA EN EL LABEL ??' ME DEVUELVE NULL
  lbFarmacia.Text =(ListaData.Get("farmacia"))
  ToastMessageShow(ListaData.Get("farmacia"), False)

El programa hace lo correcto, si el estado = null entra en esa condición, por lo tanto no debes pedir que si es null no lo sea. Correlo en modo debug linea a linea (pon un punto de ruptura dos lineas antes de donde la tienes), y cuando llegue a If estado == "null" pon el cursor encima de estado y veras que es null


Saludos
 
Last edited:
Top