Gson.toJson () против JSONObject.toString () - PullRequest
0 голосов
/ 16 июня 2019

Будут ли # 1 и # 2 всегда давать один и тот же результат? Каковы преимущества использования одного решения над другим?

Решение №2 для меня выглядит чище и проще, а также быстрее?

Решение первое:

val gson = Gson()
val j = JsonObject() //com.google.gson
j.add("foo", gson.fromJson(getBar(), JsonElement::class.java))
val jString = gson.toJson(j)
Log.d(TAG,jString)

Решение второе:

val j1 = JSONObject() //org.json
j1.put("foo", getBar())
val jString1 = j1.toString()
Log.d(TAG,jString1)


fun getBar() : String {
    //do stuff and return a string
}

1 Ответ

0 голосов
/ 16 июня 2019

JSONObject уже включен в Android API.Если вы хотите использовать Gson , вам придется импортировать его как зависимость gradle.

  compile 'com.google.code.gson:gson:<versionNumber>'

Конечно, чем больше вещей вы импортируете, тем больше ваш .apk.

С другой стороны, GSon снабжает вас серией аннотаций, что облегчает DXтак как вы должны писать меньше кода.

Я никогда не тестировал их, поэтому не буду ничего говорить о производительности, но я верю, что оба они извлекают выгоду из JsonObject , который исходит изJava.

Оба Gson.toJson () и JSONObjet.toString () имеют одинаковый эффект.Они отображают ваш JSON-объект и возвращают вас в виде строки.

...