我正在从使用 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)