Kotlin中的微调框,键值和json

时间:2018-11-16 16:35:06

标签: json api kotlin spinner key-value

我正在从使用 ACF Wordpress 制作的 API 中获取一些数据。我正在解析json **,**,然后在我的android( kotlin )应用程序中显示结果。

但是我被困住了。我需要为微调器创建一个 键/值 系统。我正在使用ArrayList来添加循环的索引和循环的值。

然后,我将其添加到微调器中,但是我只添加了一个值(值是我的应用程序上显示的值)。

请参阅:

    private fun getMulti(array: JSONArray): ArrayList<FormInput>? {
    val arrayInputs: ArrayList<FormInput> = ArrayList()

    if (array.length() > 0) {
        (0 until array.length()).forEach { j ->
            val objInput = array.getJSONObject(j)

            val placeholder2 = objInput.getString(Constants.placeholder)
            val type = objInput.getString(Constants.type)
            val customtag = objInput.getString(Constants.customtag)

            val input = FormInput(null, placeholder2, type, customtag, null)
            if (type == Constants.select) {
                val valuesArray = objInput.getJSONArray(Constants.values)
                Log.i("valeur json : ", valuesArray.toString())
                if (valuesArray.length() > 0) {
                    (0 until valuesArray.length()).forEach {
                        val valeur = input.addItems(valuesArray.getJSONObject(it).getString(Constants.value))
                        if(valuesArray.getJSONObject(it).getString(Constants.prix).toString() != ""){
                            val item = valuesArray.getJSONObject(it).getString(Constants.prix).toString().toFloat()
                            keyValSpinner.add(j, item)
                        }
                    }
                    // On ajoute l'input seulement si il est valide
                    arrayInputs.add(input)
                }
            } else {
                arrayInputs.add(input)
            }
        }
        return arrayInputs
    } else {
        return null
    }
}

这是我的json

{
  "datas": [
    {
      "id": 472,
      "titre": "Escaliers",
      "order": "4",
      "inputs": [
        {
          "title": "Escaliers",
          "type": "multi",
          "placeholder": "",
          "display_alone": true,
          "values": false,
          "other": false,
          "inputs": [
            {
              "placeholder": "Modèle",
              "type": "select",
              "values": [
                {
                  "value": "Droit",
                  "prix": ""
                },
                {
                  "value": "1/4 tournant 1 volée",
                  "prix": "2362.5"
                },
                {
                  "value": "1/4 tournant 2 volée",
                  "prix": ""
                },
                {
                  "value": "2/4 tournants",
                  "prix": ""
                },
                {
                  "value": "Demi-tour",
                  "prix": ""
                }
              ],
              "customtag": "noTag"
            },
            {
              "placeholder": "Contremarches",
              "type": "select",
              "values": [
                {
                  "value": "Avec contremarche",
                  "prix": "324"
                },
                {
                  "value": "Sans contremarche",
                  "prix": ""
                }
              ],
              "customtag": "noTag"
            },
            {
              "placeholder": "ML garde-corps étage",
              "type": "switch",
              "values": false,
              "customtag": "garde_corps"
            }
          ],
          "custom_tag_alone": "noTagAlone"
        }
      ]
    }
  ]
}

我的arrayList

class KeyValSpinner {
    companion object {
        val keyValSpinner : ArrayList<Any> = ArrayList<Any>()

    }
}

目前,我的arrayList的索引从0到10,有些价格。但是我需要获取每个微调器的每个对象的值,所以也许要获取一个arraylist的arraylist(该值存储在哪里?)

我已经为此挣扎了好几个小时...

如何从此json为每个项目创建键/值?

(PS:我可以根据需要修改api)

0 个答案:

没有答案