GitHunt

MoshiUtils

Build Status
Issue
Star

Introduction

Moshi Utils, written in kotlin

ChangeLog

  • v1.0.1: moshi 1.11.0, kotlin 1.4.30, sdk version: 21~ 30
  • v1.0.2: moshi 1.11.0, kotlin 1.5.10, sdk version: 21~ 30
  • v1.0.3: moshi 1.11.0, kotlin 1.5.20, sdk version: 21~ 30
  • v1.0.6: moshi 1.11.0, kotlin 1.5.21, sdk version: 21~ 30,AndroidStudio 2020.3.1, gradle 7.0.0, fix jitpack build error, fix jitpack publish error
  • v1.0.7: moshi 1.11.0, kotlin 1.5.30, sdk version: 21~ 30
  • v1.0.8: moshi 1.11.0, kotlin 1.5.31, sdk version: 21~ 30
  • v1.1.0: moshi 1.13.0, kotlin 1.6.0, sdk version: 21~ 31
  • v1.1.1: moshi 1.13.0, kotlin 1.6.10, sdk version: 21~ 31
  • v1.1.2: moshi 1.13.0, kotlin 1.6.20, sdk version: 21~ 31
  • v1.1.3: moshi 1.13.0, kotlin 1.6.21, sdk version: 21~ 31
  • v1.1.6: moshi 1.13.0, kotlin 1.8.10, sdk version: 21~ 33

Installation

  1. root build.gradle add
repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
  1. add dependencies
dependencies {
    implementation 'com.github.benjaminwan:MoshiUtils:1.1.4'
}

Usage

Object

define obj
val studentDemo = Student("studentDemo", 10, 1)
obj to json string
val studentJson = toJsonByMoshi(studentDemo)
json string to obj
val studentObj = fromJsonToAnyByMoshi<Student>(studentJson)

List

define a list
val studentList = (1..5).map { Student("student$it", 10 + it, it) }.toList()
list to json string
val studentListJson = toJsonByMoshi(studentList)
json string to list
val studentListObj = fromJsonToListByMoshi<Student>(studentListJson)

Map

define a map
val studentMap = (1..5).map { Pair(it, Student("student$it", 10 + it, it)) }.toMap()
map to json string
val studentMapJson = toJsonByMoshi(studentMap)
json string to map
val studentMapObj: Map<Int, Student> = fromJsonToMapByMoshi(studentMapJson)

SharedPreferences Delegate

SharedPreferences Object
var spTeacherDemo: Teacher by App.instance
    .getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
    .moshiAny<Teacher>(SP_TEACHER, Teacher("teacherDemo", 30, 2))
//get sp
val temp = spTeacherDemo
//put sp
spTeacherDemo = temp
SharedPreferences List
var spTeacherList: List<Teacher> by App.instance
    .getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
    .moshiList(SP_TEACHER_LIST, emptyList())
//get sp
val temp = spTeacherList
//put sp
spTeacherList = temp
SharedPreferences Map
var spTeacherMap: Map<Int, Teacher> by App.instance
    .getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
    .moshiMap(SP_TEACHER_MAP, emptyMap())
//get sp
val temp = spTeacherMap
//put sp
spTeacherMap = temp
benjaminwan/MoshiUtils | GitHunt