В библиотеке jQuery есть функция param()
Она превращает JS-объект в набор параметров для HTTP-запроса
Пример: объект {a:'x',b:{c:[0,1]}}
$.param({a:'x',b:{c:[0,1]}})
"a=x&b%5Bc%5D%5B%5D=0&b%5Bc%5D%5B%5D=1"
Эта строка закодирована через encodeURIComponent()
Ее можно раскодировать через decodeURIComponent()
decodeURIComponent($.param({a:'x',b:{c:[0,1]}}))
"a=x&b[c][]=0&b[c][]=1"
То есть объект закодирован в набор параметров:
a=x
b[c][]=0
b[c][]=1
Мне надо в мобильном приложении закодировать объект перед отправкой на сервер так же, как это делает jQuery.param()
Внимание, вопрос: есть ли в Android SDK такая функция?
Пока народ молчит, приведу самодельный вариант нужной мне функции на Kotlin:
fun serialize(data: JSONObject): String {
var result = arrayListOf<String>()
fun parse(value: Any, name: String, alt: String? = null) {
if (value is JSONObject) {
val keys = value.keys()
while (keys.hasNext())
keys.next().let {
parse(value[it], "$name[$it]")
}
} else if (value is JSONArray) {
for (i in 0 until value.length())
parse(value[i], "$name[$i]", "$name[]")
} else {
result.add(Uri.encode(alt ?: name) + "=" + Uri.encode("$value"))
}
}
val keys = data.keys()
while (keys.hasNext())
keys.next().let {
parse(data.get(it), it)
}
return result.joinToString("&")
}
Здесь даже учтен нюанс, что в некоторых случаях индекс массива не указывается
Я проверил, работает идентично. Но все же хотелось бы обойтись без самодеятельности :-)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не получается задать позиционирование тексту для загрузки аватараЕсть еще одна проблема, имеется выпадающее меню в вверху, она перестала...
Необходимо создать SVG прелоадер для сайта, но не умею работать с самими SVG (рисовать правильно)Идея такая:
Как сверстать такой стул, как на картинке, чтобы ножки не вылезали, а сиденье вылезало за пределы круга?