我有JSON数据表单响应如下所示
{
"message": "",
"data" : [...]
}
data
包含
data class News(
@SerializedName("id") val id: Int,
@SerializedName("title") val title: String,
@SerializedName("description") val desc: String
)
data class Product(
@SerializedName("id") val id: Int,
@SerializedName("name") val name: String
)
fun JSONObject.toNewsList() = Gson().fromJson<List<News>>(getJSONArray("data").toString(),
object : TypeToken<List<News>>(){}.type)!!
fun JSONObject.toProductList() = Gson().fromJson<List<Product>>(getJSONArray("data").toString(),
object : TypeToken<List<Product>>(){}.type)!!
fun <T> JSONObject.toList() = Gson().fromJson<List<T>>(getJSONArray("data").toString(),
object : TypeToken<List<T>>(){}.type)!!
编辑:我的项目中的每个响应总是以加密字符串的形式接收,这就是为什么我必须自己映射响应,而不能将响应类型放在call
方法中。这是我的调用
函数的样子
@POST("endpoint")
fun service(@Body body: RequestBody): Call<String>
您可以使用typeToken.getParameterized
,如下所示:
inline fun <reified T> JSONObject.toList(): List<T> {
val typeToken = TypeToken.getParameterized(List::class.java, T::class.java)
return Gson().fromJson<List<T>>(json, typeToken.type)!!
}
我正在修改open JDK以添加特性,我已经遇到了两次,但没有好的解决方案。
我正在尝试将列表的元组转换为列表,但是我没有成功,所以我有了这个函数 获取输入,例如: ( [1,2,3,4], [7,8,9] ) 并应返回: [1,7,2,8,3,9,4] 我有 结果是: [1,7,2,8,3,9***异常:hw2.hs:29: 1-54:函数函数中的非穷尽模式 我知道我得到这个错误,因为列表是不一样的大小,你们怎么认为我可以解决这个问题
这个问题的范围是JSON处理的JavaAPI(JSR 353)。 给定一个元素为JsonString的JsonArray,我如何轻松地将其转换为
假设我有两个通用列表。我想将一个泛型值从列表映射到另一个泛型值。 因此列表<.NameAndSurnamedTo>需要映射到另一个列表<.NameAndSurnamedToTwo>。 做这样的手术最好的方法是什么?
问题内容: 我有以下格式的行: 现在,我要在文件中写入以下内容: 基本上将上面转换成jsonarray? Python中是否有内置方法,库或函数可将数组“转储”到json数组中? 另请注意,我不希望在文件中序列化“ L”。 问题答案: 使用该模块生成JSON输出: 这会将JSON结果直接写入文件(如果文件已经存在,则替换任何先前的内容)。 如果您需要Python本身中的JSON结果字符串,请使用(
问题内容: 我将数据表转换为C#通用列表。 现在如何使用json.net 将其转换为json?任何建议。 json格式的样本应该像这样, 问题答案: 这是一个例子: 文档: 使用Json.NET的LINQ to JSON