diff --git a/src/tr/MangaDenizi/build.gradle b/src/tr/MangaDenizi/build.gradle
index 0faf012c9..82ccd215b 100644
--- a/src/tr/MangaDenizi/build.gradle
+++ b/src/tr/MangaDenizi/build.gradle
@@ -1,11 +1,12 @@
 apply plugin: 'com.android.application'
 apply plugin: 'kotlin-android'
+apply plugin: 'kotlinx-serialization'
 
 ext {
     extName = 'MangaDenizi'
     pkgNameSuffix = 'tr.mangadenizi'
     extClass = '.MangaDenizi'
-    extVersionCode = 3
+    extVersionCode = 4
     libVersion = '1.2'
 }
 
diff --git a/src/tr/MangaDenizi/src/eu/kanade/tachiyomi/extension/tr/mangadenizi/MangaDenizi.kt b/src/tr/MangaDenizi/src/eu/kanade/tachiyomi/extension/tr/mangadenizi/MangaDenizi.kt
index dfd3884ef..bbcb8abcf 100644
--- a/src/tr/MangaDenizi/src/eu/kanade/tachiyomi/extension/tr/mangadenizi/MangaDenizi.kt
+++ b/src/tr/MangaDenizi/src/eu/kanade/tachiyomi/extension/tr/mangadenizi/MangaDenizi.kt
@@ -8,8 +8,10 @@ import eu.kanade.tachiyomi.source.model.SChapter
 import eu.kanade.tachiyomi.source.model.SManga
 import eu.kanade.tachiyomi.source.online.ParsedHttpSource
 import eu.kanade.tachiyomi.util.asJsoup
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.decodeFromString
+import kotlinx.serialization.json.Json
 import okhttp3.Response
-import org.json.JSONObject
 import org.jsoup.nodes.Document
 import org.jsoup.nodes.Element
 import java.text.SimpleDateFormat
@@ -70,25 +72,14 @@ class MangaDenizi : ParsedHttpSource() {
     override fun searchMangaFromElement(element: Element) = throw UnsupportedOperationException("Unused")
 
     override fun searchMangaParse(response: Response): MangasPage {
-        val res = response.body!!.string()
-        return getMangasPage(res)
-    }
-
-    private fun getMangasPage(json: String): MangasPage {
-        val response = JSONObject(json)
-        val results = response.getJSONArray("suggestions")
-        val mangas = ArrayList<SManga>()
-
-        // No thumbnail here either
-        for (i in 0 until results.length()) {
-            val obj = results.getJSONObject(i)
-            val manga = SManga.create()
-            manga.title = obj.getString("value")
-            manga.url = "/manga/${obj.getString("data")}"
-            mangas.add(manga)
+        val mangaListJson = Json.decodeFromString<SearchMangaJson>(response.body!!.string())
+        val mangaList = mangaListJson.suggestions.map {
+            SManga.create().apply {
+                title = it.value
+                url = "/manga/${it.data}"
+            }
         }
-
-        return MangasPage(mangas, false)
+        return MangasPage(mangaList, false)
     }
 
     override fun mangaDetailsParse(document: Document) = SManga.create().apply {
@@ -132,4 +123,14 @@ class MangaDenizi : ParsedHttpSource() {
     override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not Used")
 
     override fun getFilterList() = FilterList()
+
+    @Serializable
+    data class SearchMangaJson(
+        val suggestions: List<MangaJson>
+    )
+    @Serializable
+    data class MangaJson(
+        val value: String,
+        val data: String,
+    )
 }
diff --git a/src/zh/bainianmanga/build.gradle b/src/zh/bainianmanga/build.gradle
index 8c2b3a0f7..e34241e94 100755
--- a/src/zh/bainianmanga/build.gradle
+++ b/src/zh/bainianmanga/build.gradle
@@ -1,11 +1,12 @@
 apply plugin: 'com.android.application'
 apply plugin: 'kotlin-android'
+apply plugin: 'kotlinx-serialization'
 
 ext {
     extName = 'BainianManga'
     pkgNameSuffix = 'zh.bainianmanga'
     extClass = '.BainianManga'
-    extVersionCode = 2
+    extVersionCode = 3
     libVersion = '1.2'
 }
 
diff --git a/src/zh/bainianmanga/src/eu/kanade/tachiyomi/extension/zh/bainianmanga/BainianManga.kt b/src/zh/bainianmanga/src/eu/kanade/tachiyomi/extension/zh/bainianmanga/BainianManga.kt
index a92368a58..8ac444569 100755
--- a/src/zh/bainianmanga/src/eu/kanade/tachiyomi/extension/zh/bainianmanga/BainianManga.kt
+++ b/src/zh/bainianmanga/src/eu/kanade/tachiyomi/extension/zh/bainianmanga/BainianManga.kt
@@ -1,7 +1,5 @@
 package eu.kanade.tachiyomi.extension.zh.bainianmanga
 
-import com.github.salomonbrys.kotson.fromJson
-import com.google.gson.Gson
 import eu.kanade.tachiyomi.network.GET
 import eu.kanade.tachiyomi.source.model.Filter
 import eu.kanade.tachiyomi.source.model.FilterList
@@ -9,6 +7,8 @@ import eu.kanade.tachiyomi.source.model.Page
 import eu.kanade.tachiyomi.source.model.SChapter
 import eu.kanade.tachiyomi.source.model.SManga
 import eu.kanade.tachiyomi.source.online.ParsedHttpSource
+import kotlinx.serialization.decodeFromString
+import kotlinx.serialization.json.Json
 import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
 import okhttp3.Request
 import okhttp3.Response
@@ -80,19 +80,16 @@ class BainianManga : ParsedHttpSource() {
         return super.chapterListParse(response).asReversed()
     }
 
-    private val gson = Gson()
-
     override fun pageListParse(document: Document): List<Page> {
         val html = document.html()
-        val baseURLRe = Regex("var z_yurl='(.*?)';")
-        val baseImageUrl = baseURLRe.find(html)?.groups?.get(1)?.value
+        val baseImgUrl = "https://img.hltongchen.com/"
 
-        val re = Regex("var z_img='(.*?)';")
-        val imgCode = re.find(html)?.groups?.get(1)?.value
-        if (imgCode != null) {
-            val anotherStr = gson.fromJson<List<String>>(imgCode)
-            return anotherStr.mapIndexed { i, imgStr ->
-                Page(i, "", "$baseImageUrl$imgStr")
+        val imgUrlRegex = Regex("var z_img='(.*?)';")
+        val imgUrlArray = imgUrlRegex.find(html)?.groups?.get(1)?.value
+        if (imgUrlArray != null) {
+            val imgUrlList = Json.decodeFromString<List<String>>(imgUrlArray)
+            return imgUrlList.mapIndexed { i, imgUrl ->
+                Page(i, "", "$baseImgUrl$imgUrl")
             }
         }
         return listOf()