android - Kotlinx 将 JSON Array 序列化为数据类
问题描述
对于我的 Android 应用程序,我尝试使用 Kotlinx 序列化来解析网络响应。网络响应是来自Kraken的 WebSocket Payload ,看起来像一个 JSON 数组,其中包含没有键的元素。我想为此响应创建一个数据类并分配缺少的键。网络响应如下所示:
[
324,
{
"a": [
"65534.00000",
8,
"8.45840938"
],
"b": [
"65533.90000",
0,
"0.00352122"
],
"c": [
"65533.90000",
"0.00458332"
],
"v": [
"2282.41761567",
"3048.01677262"
],
"p": [
"65297.21555",
"64608.96127"
],
"t": [
27317,
38224
],
"l": [
"63319.60000",
"61810.00000"
],
"h": [
"66420.00000",
"66420.00000"
],
"o": [
"63319.60000",
"61962.00000"
]
},
"ticker",
"XBT/USD"
]
解决方案
对于 JSON 数组
[{
"id": 324,
"items": {
"a": [
"65534.00000",
8,
"8.45840938"
],
"b": [
"65533.90000",
0,
"0.00352122"
],
"c": [
"65533.90000",
"0.00458332"
],
"v": [
"2282.41761567",
"3048.01677262"
],
"p": [
"65297.21555",
"64608.96127"
],
"t": [
27317,
38224
],
"l": [
"63319.60000",
"61810.00000"
],
"h": [
"66420.00000",
"66420.00000"
],
"o": [
"63319.60000",
"61962.00000"
]
},
"unit" : "ticker",
"code" : "XBT/USD"}
]
Kotlin 数据类将是
import com.google.gson.annotations.SerializedName
data class Example (
@SerializedName("id") var id : Int,
@SerializedName("items") var items : Items,
@SerializedName("unit") var unit : String,
@SerializedName("code") var code : String
)
但是,您的响应看起来不像 JSON 数组,其格式应为:
[{},{},{}]
您的回复是正常的形式数组:
[,,,]
推荐阅读
- paypal - 获取此 PayPal 按钮的 HTML 和 CSS 代码
- javascript - Vue 3 Composition API 提供/注入在单个文件组件中不起作用
- python - 使用 SQLalchemy 连接到 MySql 数据库时出错
- python - 合并具有不同行数的 DataFrame,并具有一个包含值总和的新列
- python - jsonload JSONDecodeError:无效的控制字符在
- javascript - 如何在 Javascript 中使用 FileReader() 以不同的方法读取 2 个不同的文件
- python - 网页抓取/将数据转换为 Python 中的表格数据
- graph - 是否可以将 Grafana 注释不放在面板底部?
- r - 如何遍历 R 中的列进行 T 检验?
- flutter - 来自路由参数的 FutureBuilder