问题标签 [kotlinx.serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
642 浏览

kotlin - 如何使用 kotlinx.serialization 在 Ktor 中序列化 Web Socket Frame.text

我想序列化frame.readText()以返回类对象我对 Ktor 世界完全陌生,我不知道这是否可能

0 投票
1 回答
3574 浏览

kotlin - 没有@Serializable 的数据类的自定义序列化程序

我正在尝试将 JSON 文件反序列化为我无法控制的 Kotlin 数据类kotlinx.serialization

该类看起来类似于:

我尝试解析的 JSON 如下所示:

这是通过以下方式尝试的:

0 投票
2 回答
2500 浏览

kotlin - 如何使用 kotlinx 序列化将值数组反序列化为集合

嗨,我是 kotlinx 序列化的新手,我正在使用 KMP,我的要求有点不同

我的数据类

@Serializable 数据类 Student(val name : String , val age : Int)

我的简单 JSON 将是“['Avinash', 22]”,

应该反序列化为 Student("Avinash", 22)

我无法反序列化它任何人都可以帮助我

0 投票
1 回答
2048 浏览

android - kotlinx.serialization.SerializationException:找不到类“UnitEntity”(myClassName)的序列化程序

我正在开发一个 Kotlin 多平台项目,但遇到了保存数据库实体对象的问题。当我调用我的 sqldelight dao 类的插入方法时抛出异常

该示例类是生成的实体类

这是 DAO 类:

当我尝试调用该保存方法时,它崩溃并说将该类标记为@Serializable,我不明白它为什么这么说,因为它是一个生成的类,我无法修改这些类。

这是我如何尝试保存这些实体的片段

图书馆:

这是由生成的实际entities和保存方法SqlDelight

资源实体类

UnitEntity.class

保存方法

0 投票
1 回答
384 浏览

android - Json$Default 不能转换为 kotlinx.serialization.json.Json

kotlinx.serialization 和在 androidTest 中运行测试的问题。

库版本:

我的 Json 实例:

UI测试方案

存根 json -> 使用 kotlinx.serialization.json 反序列化 json -> 显示屏幕

如果我在 androidTest 文件夹中运行 UI 测试,我会得到异常

您对如何解决此问题有任何想法吗?

UPD

另一种变体。无默认使用

例外

0 投票
4 回答
2611 浏览

android - 在构建版本中找不到数据类 Kotlin 的序列化程序

我想将我的 json 字符串响应从 API 转换为对象:

我的数据类:

它看起来很简单,它可以在调试模式下工作!

但是,当编译 AppBundle,以发布模式构建并从 Play Store 内部测试下载应用程序时,我收到以下错误:

0 投票
1 回答
282 浏览

kotlin - 如何使用 kotlinx.serialization 拦截反序列化

例如,我有 JSON

为了反序列化,我定义了数据类

反序列化后Foo对象有

foo.link"//n.ya.com"

如何//在反序列化期间删除 ,这意味着foo.link使用 "n.ya.com"

0 投票
3 回答
1186 浏览

android - 如何使用带有 Kotlinx 可序列化数据的 Navigation Safe Args

我正在尝试将 Navigation Safe Args 与 Kotlinx @Serializable 类型一起使用,但是当我传递可序列化数据时,我在运行时不断遇到同样的问题:

在我的nav_graph.xml我有以下内容:

我的SerializableModel看起来像这样:

有没有人找到一种解决方法来使用 Safe Args 进行这项工作。如果您使用导航 API 传递 Bundle,它会起作用,但如果可能,我想使用 Safe Args。

我正在使用的版本

  • plugin.serialization: 1.4.21
  • 导航安全参数梯度插件:2.3.2
  • androidx.navigation:navigation-ui-ktx: 2.3.2
  • androidx.navigation:navigation-fragment-ktx: 2.3.2
  • kotlinx 序列化核心:1.0.1

提前致谢!

0 投票
1 回答
672 浏览

kotlin - 如何在命令行编译 kotlinx.serialization 库?

这与我想要完成的非常接近。如何使用外部 java 库在命令行中编译和运行 kotlin 程序

我真的很想学习如何编译和运行包含库的简单代码,但是在包含类路径时我有点迷失了。

我目前正在尝试编译和运行

使用

用这个编译器编译

https://blog.jetbrains.com/kotlin/2020/07/kotlin-1-4-rc-released/

文章底部允许的 lib 是 kotlinx-serialization-runtime-1.0-M1-1.4.0-rc.jar 的来源。我之所以选择这个运行时 jar,是因为当我使用新的 kotlin 4.0.21 编译器时,它需要您自己构建的 kotlin-serialization-runtime-1.0.1.jar,但是当我下载源代码并运行 gradle build 时,它不需要似乎生成了(单独的问题,但很想知道如何自己构建运行时 jar)

当我尝试跑步时,我得到

我知道我需要在运行时包含一个类路径

但尝试了一切都没有成功

我尝试了许多不同的组合,包括使用和不使用 -Xplugin="C:\PROGRA~1\Kotlin\lib\kotlinx-serialization-compiler-plugin.jar 进行编译似乎没有什么不同,所以我离开了它离开。

我尝试编译为 java .jar 和 kotlin .class 文件似乎都需要在运行时的类路径信息。我宁愿编译成一个 kotlin .class 并将 java 排除在外,直到我真正需要它为止。通过这种方式,我可以了解 java 在我的应用程序中真正在做什么。

我想我真正想知道的是如何确定运行时可执行文件运行所需的内容。我发现这个站点有助于显示依赖关系,但适用于旧版本的 kotlin https://kotlin.binarydoc.org/org.jetbrains.kotlin/kotlin-compiler-dist/1.3.71/package?package=kotlinx.serialization

我也一直在使用https://github.com/google/android-classysharkhttps://github.com/borisf/classyshark-bytecode-viewer进入 .class 文件

但是当人们在 StackOverflow 上告诉其他人他们需要使用什么类路径来解决他们的问题时,这似乎很神奇。有人可以教我如何在没有gradle的情况下钓鱼吗?

ps 如果有人有任何好的资源来学习 gradle 如何构建项目的内部知识。我在这里看了一点https://docs.gradle.org/current/userguide/userguide.pdf但似乎没有帮助。也许我错过了什么。此外,此页面https://kotlinlang.org/docs/reference/serialization.html#example-json-serialization似乎有我需要的东西,但似乎无法将其转移到命令行需要的东西。

这是什么意思?我认为这是指这个https://github.com/Kotlin/kotlinx.serialization

但是我如何从这个 repo 构建我需要的东西并使用它来让我的应用程序知道它的运行时依赖项在哪里?啊。我真的很想自己弄清楚这一切,但我必须为此向互联网大神跪下。对不起,我的帖子很乱。我爱学习。

0 投票
2 回答
260 浏览

kotlin - 我可以在 Kotlin 脚本中使用 kotlinx 类吗?

kotlinx是否可以在一个简单的 Kotlin 脚本中从包中导入类?

myscript.kts

运行上面的脚本kotlinc -script myscript.kts会给出这个错误:

当我检查kotlinc/lib/目录时,存在kotlinx-coroutines-core.jar等等。
我正在使用 Kotlin 编译器版本 1.4.0。