【问题标题】:Basic4android - JsonparserBasic4android - Jsonparser
【发布时间】:2017-03-29 16:54:46
【问题描述】:

我的 json 格式如下:

{"response":[{Pasien={id=24, name=Erren}, Detailtransaksi=[], Upk={name=Poli Umum}, Pendaftaran={antrian=1, id=1, user_id=9, modified=2015-03-01 14:08:46, keterangan=demam tinggi, pasien_id=24}},
 {Pasien={id=21, name=Lulu Batam}, Detailtransaksi=[], Upk={name=Poli Umum}, Pendaftaran={antrian=2, id=2, user_id=9, modified=2015-03-01 14:09:05, keterangan=kantong kering akut, pasien_id=21}}
]}

但我不知道,如何将数组数据放入列表中。

【问题讨论】:

  • 这不是一个有效的JSON
  • 我从 cakePHP 得到这种格式

标签: basic4android


【解决方案1】:

我试图告诉每个符号是什么意思。你必须使用

 Dim j as Json: j.Initialize(string)
 Dim m as Map = j.NextObject()
 Dim l as List = m.Get("response")
 Dim m2 as Map = l.Get(0)
 Dim m3 as Map = m2.Get("Pasien")
 Dim id as Integer = m3.Get("id")
 Dim l2 as List = m3.Get("Detailtransaksi") 'but it has not child element

这些行告诉从 json 获取数据。

我希望这些提示对你来说足够了。

{  => this mean it is a json object. you must take this to Map by nextObject       

'response':[   => this mean it is a list! you must take this element to List by nextArray
      {        => after take all data to list, get every element from list to Map
         Pasien={   => get "Pasien" value from Map with own key to new Map
                  id=24,   
                  name=Erren
                }, 
         Detailtransaksi=[], 
         Upk={
               name=Poli Umum
             }, 
         Pendaftaran={
                       antrian=1, 
                       id=1, 
                       user_id=9, 
                       modified=2015-03-01 14:08:46,
                       keterangan=demam tinggi, pasien_id=24
                     }
       },

       {
          Pasien={
                    id=21, 
                    name=Lulu Batam
                  }, 
          Detailtransaksi=[],
          Upk={
                name=Poli Umum
              },
          Pendaftaran={
                        antrian=2,
                        id=2, 
                        user_id=9,
                        modified=2015-03-01 14:09:05,
                        keterangan=kantong kering akut, 
                        pasien_id=21
                       }
         }
   ]
}

【讨论】:

    【解决方案2】:

    您可以使用 JSONParser 类。 首先,您应该将 JSON 库添加到您的项目中,然后声明一个 JSONParser 变量并使用您的 JSON 文本对其进行初始化。

    现在您可以使用以下两种方法来获取结果: parser.NextArray As List(当 JSON 文本中有多个元素时) parser.NextObject As Map(当json文本中只有一个对象时)

    private Sub ParseResponse (text As String) As List
    parser.Initialize(text)
    Private returnList As List
    Private jsonMap As Map
    Private jsonList As List
    
    Try
        jsonList = parser.NextArray
        returnList = jsonList
        Return returnList
    Catch
        Try
            jsonMap = parser.NextObject
            returnList.Add(jsonMap)
            Return returnList
        Catch
            Return Null     ' not a json text
        End Try
    End Try
    

    结束子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多