在我的安卓应用程序的Fragment中,我使用SharedPreferences和Moshi来保存和加载我从RecyclerView获得的数据。
以下是我为该任务提供的两个函数:
private fun saveData() {
val sharedPreferences = this@Main.requireContext().getSharedPreferences("recycler_view", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
val moshi = Mosh
我试图使用Moshi + kotlin解析一个设计不太好的api的json。出于某些原因,它将71这样的数字解析为双倍。
第三方api有一个对象列表,这些对象可以是:{"foo":[1234567000,12]} // long,int或{"foo":[1234567000,"string",0,2]} / long,string,int,int
由于第三方api,我有以下kotlin类:
@JsonClass(generateAdapter = true)
class D {
var foo: List<Any> // I
我按照添加了对moshi和pro卫士规则的gradle依赖,然后编写代码进行验证。
data class Car(
@Json(name = "low_speed") val lowSpeed: Int,
@Json(name = "high_speed") val highSpeed: Int
)
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
val jsonAdapter = moshi.adapte
我是API世界的新手。在尝试使用Retrofit和Moshi获取API时,我似乎得到了0的结果,而我不应该这样做。有人能告诉我我做错了什么吗?
编辑:在进一步的研究中,我实际上在视图模型中得到了这个错误,我在该模型中调用API:
Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $
我试图获取的API:
https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2021-01-01&endtime=2021-08-24&minmag
我有一个User类。和两个子类。父项和子项。我使用{"user":"..."}从我的服务器获取json,并且需要根据user.type将其转换为父级或子级
据我所知,我需要以这种方式添加自定义转换器:
Moshi moshi = new Moshi.Builder()
.add(new UserAdapter())
.build();
下面是我的UserAdapter实现。我知道它是虚拟的,但它不是这样工作的:
public class UserAdapter {
@FromJson
User f
下面我准备了一些我在执行对服务器的查询时使用的代码。
来自服务器的响应返回带有json格式的图书的列表。params中的一个字段包含json数组中的列表。
我怎么能强迫Moshi把这个字段当作一个原始字符串呢?
这是我的代码的一个解释。
这是一个伪类,我从这里调用Retrofit实例。
public final class RestApi {
private static final String API_ENDPOINT_KEY = "...";
private final MyApi myApi;
private RestApi() {
我有一组Servlets,它们回传对象的数组,比如 text=[{"sPK":1,"sName":"foobar","cFlag":0},
{"sPK":5,"sName":"barfoo","cFlag":1}] 在一个java应用程序中,我使用org.fasterXML.Jackson来读取json,并读取我使用的这种性质的数组 ObjectMapper m = new ObjectMappar();
SClass[] ss = m.readVa
当我遇到这个错误时,我正与Moshi一起从一个API中提取JSON数据并将其映射到我的DTO数据类:
致命例外:主进程: com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:103) at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:103) at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(N
我目前正在为一个项目制作我的第一个自定义Android应用程序,但我无法解决以下问题。(我做了很多研究,但没有发现任何类似的东西)
2020-02-15 11:41:30.075 10337-10337/com.example.quickmatch I/SigninFragmentViewModel: Required value 'surname' missing at $post
我正在尝试将此自定义对象在线发布到我的后端服务器:
@JsonClass(generateAdapter = true)
data class PlayerObject(
val
我正在使用Moshi作为Retrofit的转换器,但是对于一个特定的请求,它不能工作,并引发异常:com.squareup.moshi.JsonDataException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at path $.results
我想解析的JSON:
{
"id": 423,
"results": [
{
"id": "53484dfec3a3684b930000bd",
"iso_639_1": "en
我目前正在使用Moshi适配器将一些json原始转换为给定类型。在我使用带注释的模型之前,它工作得很好。
我猜我应该在我的适配器中添加Player::class.java之外的另一个参数,但我不知道是什么。
下面是一个例子:
data class Player(
val username: String,
@Json(name = "lucky number")
val luckyNumber: Int
)
private val playerStubRaw = "{\n" +
" \"username\
var wall= ArrayList<VKWall>()
try {
val response = r.getString("response") as String
val moshi = Moshi.Builder().build()
val type: Type = Types.newParameterizedType(
ArrayList::class.java,
VKWall::class.java
)
val js
我得到了复杂的JSON对象作为响应。我指的是它包含的子类。所以我在想如何解析它。我创建了数据类:
@Parcelize
data class Attachments(
val photo:String,
val video:String,
val audio: audio,
val doc: doc,
val grafity: String,
val link: String,
val note: note,
val poll: poll,
val page: String
):Parcelable{
companion object :Parceler <
假设我们有以下模型 open class Orden(@field:Json(name = "vehiculo_id") var vehiculo_id: IdNameItem = IdNameItem()) :
RealmObject()
open class IdNameItem(
@field:Json(name = "id") var id: Long = 0,
@field:Json(name = "name") var name: String = "" ):RealmObject() 我们想要从WS获取所有Ord
数据类中有以下属性
@Parcelize
@JsonClass(generateAdapter = true)
data class CatalogProduct(
@Json(name = "recommended")
val recommended: Int = 0
) : Parcelable
我得到以下错误:
Expected an int but was BOOLEAN at path $.products[0].recommended at $.products[0].recommended
由于我从API得到的响应可能不包含该值作为其可选的。
如果
我有一个模型课
data class RvRange(val low: Int?, val high: Int?)
我的JSON响应是
{"low":60799.999999999985,"high":168800.00000000003}
我希望Moshi自动将这些浮点数/双精度值转换为Int,但它崩溃了。这个问题有什么解决方案吗?
我对web和改造很陌生。我正在与交互,在获取我发布的数据时遇到了困难。API有一个图像列表和一个功能,可以选择几个作为收藏夹,并通过POST请求检索收藏夹列表。
我的主要问题可能与数据类有关(我有2):
-For图像获取请求
data class CatPhoto (
@Json(name = "id")
val id: String,
@Json(name = "url")
val imgSrcUrl: String,
@Json(name = "breeds")
val breeds: List
我试图使用用于Android的Moshi库将JSON字符串转换为Java对象。对象包含类型为
ArrayList<String>
在应用程序运行之后,抛出以下异常
Caused by: java.lang.IllegalArgumentException: Platform java.util.ArrayList<java.lang.String> (with no annotations) requires explicit JsonAdapter to be registered
for java.util.ArrayList<java.lang.Strin
我想创建一个helper类来帮助我将任何对象序列化为json,反之亦然。我试着在谷歌上搜索,但没有相关信息。也许我不知道要搜索的正确术语是什么。这是我到目前为止所做的工作..
public class Serializer {
private static Moshi moshi;
public Serializer(){
moshi = new Moshi.Builder().build();
}
public static <T> T parse(String json) throws IOException {
JsonAdapter<T> a
有没有人能告诉我为什么这个不起作用 模型类: @JsonClass(generateAdapter = true)
data class InstagramBusinessAccountResponse(
val data : List<Account>
) {
data class Account(
@Json(name = "id") val id : String,
@Json(name = "instagram_business_account") val instag
我正在尝试编写一个空安全的字符串适配器,它将将这个JSON {"nullString": null}序列化为:Model(nullString = ""),以便任何具有'null‘值的JSON都将被""替换(假设存在像这样的数据类:data class Model(val nullString: String))。
我编写了一个自定义适配器来尝试处理这个问题:
class NullStringAdapter: JsonAdapter<String>() {
@FromJson
override fun from
它在kotlin 1.4.31上工作得很好。在将kotlin升级到1.5.20之后,当我启动应用程序时,它总是会崩溃。错误是
kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Unresolved class: class d.e.i.h.m$b
at kotlin.reflect.jvm.internal.KClassImpl.reportUnresolvedClass(KClassImpl.kt:329)
at kotlin.reflect.jvm.internal.KClassImpl.access$re