BEGIN_OBJECTが必要ですが、パスMoshiJsonデータ例外でBEGIN_ARRAYでした

ニモンド

レトロフィットのコンバーターとしてMoshiを使用していますが、特定のリクエストに対してMoshiが機能せず、例外がスローされます。

com.squareup.moshi.JsonDataException:BEGIN_OBJECTが必要ですが、パス$ .animauxでBEGIN_ARRAYでした

これがJsonです

    "nb_animaux":1、
    "animaux":[ 
        { 
            "code_iso": "768010103010004"、
            "photos":[]、
            "espece":{ 
                "id":1、
                "fr": "Bovin"、
                "en": "Bovine" 
            }、
            "elevage":{ 
                "parametre_geographique":{ "prefecture":
                    "Oti"、
                    "region": "Savane"、
                    "commune": "Mango"、
                    "pays":{ 
                        "fr": "TOGO"、
                        "en": "TOGO" 
                    }、 
                    "village": "Fonboro" 
                }、
                "type_elevage":{}、
                "code_elevage": "76801010301" 
            }、
            "sexe": "m"、
            "date_naissance":1561932000、
            "category":{ 
                "fr": "Taureau"、
                "en": "Bull" 
            }、
            "proprietaire":{ 
                "ID":10、
                "フルネーム": "EDEM"、
                "住所": "ロメ"、
                "電話": "98665478" 
            } 
        } 
    ]、
    "num_transport": "1/11/2019 / TG"、 
    "date_transport":1574784132、
    "traite":false 
}

私のモデルクラス

@Entity
data class Animal(
    @field:PrimaryKey
    var id: Long,
    @ColumnInfo(name = "nb_animaux")
    @Json(name = "nb_animaux")
    var nbAnimaux : Int,
    @Embedded
    @get:Json(name = "animaux")
    var animaux : Animaux,
    @ColumnInfo(name = "num_transport")
    @Json(name = "num_transport")
    var numeroTransport : String,
    @ColumnInfo(name = "date_transport")
    @Json(name = "date_transport")
    var dateTransport : Long,
    var traite: Boolean

)
@JsonClass(generateAdapter = true)
data class Animaux(
    @ColumnInfo(name = "animaux_id")
    var id : Long,
    @ColumnInfo(name = "code_iso")
    @Json(name = "code_iso")
    var codeIso : Long,
    @Embedded
    var espece : Espece,
    @Embedded
    var elevage : Elevage,
    var sexe : String,
    @ColumnInfo(name = "date_naisance")
    @Json(name = "date_naisance")
    var dateNaissance : Long,
    @ColumnInfo(name = "race_pere")
    @Json(name = "race_pere")
    var racePere: String,
    @ColumnInfo(name = "race_mere")
    @Json(name = "race_mere")
    var raceMere: String,
    @Embedded
    var category: Category,
    @Embedded
    var proprietaire: Proprietaire

)
/*{
    constructor() : this(0, 0, Espece(0,"",""), Elevage(0, ParametreGeographique("","","",
        Country("",""),""
    ),0), "", 0, "", "", Category(0,"",""),Proprietaire
    (0,"","","",""))
}
 */
data class Espece(
    @ColumnInfo(name = "id_espece")
    @Json(name = "id_espece")
    var id: Long,
    var fr : String,
    var en : String
)
data class Elevage(
    @ColumnInfo(name = "id_elevage")
    @Json(name = "id_elevage")
    var id: Long,
    @Embedded
    var parametregeographique: ParametreGeographique,
    @ColumnInfo(name = "code_elevage")
    @Json(name = "code_elevage")
    var codeElevage : Long
)
data class ParametreGeographique(
    var prefecture : String,
    var region : String,
    var commune : String,
    @Embedded
    var pays : Country,
    var village : String
)
data class Country(
    @ColumnInfo(name = "fr_pays")
    @Json(name = "fr_pays")
    var fr : String,
    @ColumnInfo(name = "en_pays")
    @Json(name = "en_pays")
    var en : String
)

data class Category (
    @ColumnInfo(name = "id_category")
    var id: Long,
    @ColumnInfo(name = "fr_category")
    var fr : String,
    @ColumnInfo(name = "en_category")
    var en : String
)
data class Proprietaire(
    @ColumnInfo(name = "id_proprietaire")
    var id: Long,
    var fullname : String,
    var telephone : String,
    @ColumnInfo(name = "telephone_second")
    var telephoneSecond : String,
    @ColumnInfo(name = "photo_profile")
    var photoProfil : String
)

レトロフィットコール

@GET("marche-betail/transport/{id}")
fun commandesDetailFromServer(@Path("id") id: Long?): Observable<Animal>

どうすればエラーを処理できますか。Animauxクラスにコンストラクターを使おうとしましたが、エラーが発生します。私も使ったのですlist<Animaux>が、うまくいきませんでした。

アレクセイロマノフ

JSONには、Animaux1つだけはなく、のリストがあります。したがって、必要なのはvar animaux: List[Animaux]、だけではありませんAnimaux

モデルクラスにどのように実装しますか。このエラーエラーが発生するので、その方法を教えてください。Entities and POJOs must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type). - java.util.List

Roomはそのようなフィールドを直接サポートしていません技術的には機能させることができますが(Androidルームの永続ライブラリへの回答-リストオブジェクトフィールドを持つクラスを挿入する方法を参照)、データは間違いなく複雑なので、JSONとJSONの両方に単一のクラスを使用しようとはしませんルーム; 非常に正規化されていないデータベースになってしまいます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

BEGIN_ARRAYが必要でしたが、BEGIN_OBJECTでした

分類Dev

GSON & ボレー => BEGIN_ARRAY が必要でしたが、行 1 列 2 パス $ で BEGIN_OBJECT でした

分類Dev

MovieGlu API:改造2:BEGIN_ARRAYが必要ですが、行1列2パス$でBEGIN_OBJECTでした

分類Dev

AsyncTaskはBEGIN_OBJECTである必要がありますが、行1列2パス$でBEGIN_ARRAYでした

分類Dev

Retrofit2 Android:BEGIN_ARRAYが必要ですが、行1、列2、パス$でBEGIN_OBJECTでした

分類Dev

BEGIN_OBJECTが必要ですが、行1列12パス$ .moviesでBEGIN_ARRAYでした

分類Dev

BEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

分類Dev

begin_arrayが必要ですが、行1、列2のパス$ retrofitでbegin_objectでした

分類Dev

BEGIN_ARRAYが必要ですが、行1、列2のパス$でBEGIN_OBJECTでした-Retrofit 2 Android

分類Dev

BEGIN_ARRAYが必要ですが、GitHubAPIの1行目2列目のパス$でBEGIN_OBJECTでした

分類Dev

Java:BEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

分類Dev

BEGIN_ARRAYが必要ですが、1行53列のパス$ .dataでBEGIN_OBJECTでした

分類Dev

GSONは「BEGIN_OBJECTが必要ですがBEGIN_ARRAYでした」をスローしますか?

分類Dev

BEGIN_ARRAYが必要ですが、1行2列目がBEGIN_OBJECTでした

分類Dev

java.lang.IllegalStateException:BEGIN_ARRAYが必要でしたが、パスでBEGIN_OBJECTでした

分類Dev

改造はbegin_arrayが必要でしたが、行1列2パス$のbegin_objectでした

分類Dev

GsonでJSON(ストリームモード)を解析するJAVAエラー:BEGIN_ARRAYが必要ですが、行1列2パス$でBEGIN_OBJECTでした

分類Dev

AndroidでGSONを使用してJSONデータを解析しようとしています:BEGIN_ARRAYが必要でしたが、BEGIN_OBJECTでした

分類Dev

gsonエラーでjsonを変換するBEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

分類Dev

Retrofit 2.0.0 beta2:begin_arrayが必要でしたが、begin_objectでした

分類Dev

改造-BEGIN_ARRAYが必要でしたが、BEGIN_OBJECTでしたか?

分類Dev

Android-レトロフィット例外BEGIN_OBJECTが必要でしたが、BEGIN_ARRAYでした

分類Dev

java.lang.IllegalStateException:BEGIN_ARRAYが必要ですが、BEGIN_OBJECT Androidエラーでした

分類Dev

GSONが「BEGIN_OBJECTを期待していましたが、BEGIN_ARRAYでした」をスローします

分類Dev

BEGIN_ARRAYが必要でしたが、MVVMとRetrofitを使用した1行2列のパスKotlinコルーチンでBEGIN_OBJECTでした

分類Dev

BEGIN_ARRAYが必要でしたが、gson、android、retrofitでBEGIN_OBJECTエラーが発生しました

分類Dev

GSONを使用したJson解析:JsonSyntaxException:java.lang.IllegalStateException:BEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

分類Dev

Java gsonエラー:BEGIN_OBJECTが必要ですが、BEGIN_ARRAYでした(ただし、タイプマップは正しいですか?)

分類Dev

後付けエラー:BEGIN_OBJECTが必要でしたが、BEGIN_ARRAYでした

Related 関連記事

  1. 1

    BEGIN_ARRAYが必要でしたが、BEGIN_OBJECTでした

  2. 2

    GSON & ボレー => BEGIN_ARRAY が必要でしたが、行 1 列 2 パス $ で BEGIN_OBJECT でした

  3. 3

    MovieGlu API:改造2:BEGIN_ARRAYが必要ですが、行1列2パス$でBEGIN_OBJECTでした

  4. 4

    AsyncTaskはBEGIN_OBJECTである必要がありますが、行1列2パス$でBEGIN_ARRAYでした

  5. 5

    Retrofit2 Android:BEGIN_ARRAYが必要ですが、行1、列2、パス$でBEGIN_OBJECTでした

  6. 6

    BEGIN_OBJECTが必要ですが、行1列12パス$ .moviesでBEGIN_ARRAYでした

  7. 7

    BEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

  8. 8

    begin_arrayが必要ですが、行1、列2のパス$ retrofitでbegin_objectでした

  9. 9

    BEGIN_ARRAYが必要ですが、行1、列2のパス$でBEGIN_OBJECTでした-Retrofit 2 Android

  10. 10

    BEGIN_ARRAYが必要ですが、GitHubAPIの1行目2列目のパス$でBEGIN_OBJECTでした

  11. 11

    Java:BEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

  12. 12

    BEGIN_ARRAYが必要ですが、1行53列のパス$ .dataでBEGIN_OBJECTでした

  13. 13

    GSONは「BEGIN_OBJECTが必要ですがBEGIN_ARRAYでした」をスローしますか?

  14. 14

    BEGIN_ARRAYが必要ですが、1行2列目がBEGIN_OBJECTでした

  15. 15

    java.lang.IllegalStateException:BEGIN_ARRAYが必要でしたが、パスでBEGIN_OBJECTでした

  16. 16

    改造はbegin_arrayが必要でしたが、行1列2パス$のbegin_objectでした

  17. 17

    GsonでJSON(ストリームモード)を解析するJAVAエラー:BEGIN_ARRAYが必要ですが、行1列2パス$でBEGIN_OBJECTでした

  18. 18

    AndroidでGSONを使用してJSONデータを解析しようとしています:BEGIN_ARRAYが必要でしたが、BEGIN_OBJECTでした

  19. 19

    gsonエラーでjsonを変換するBEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

  20. 20

    Retrofit 2.0.0 beta2:begin_arrayが必要でしたが、begin_objectでした

  21. 21

    改造-BEGIN_ARRAYが必要でしたが、BEGIN_OBJECTでしたか?

  22. 22

    Android-レトロフィット例外BEGIN_OBJECTが必要でしたが、BEGIN_ARRAYでした

  23. 23

    java.lang.IllegalStateException:BEGIN_ARRAYが必要ですが、BEGIN_OBJECT Androidエラーでした

  24. 24

    GSONが「BEGIN_OBJECTを期待していましたが、BEGIN_ARRAYでした」をスローします

  25. 25

    BEGIN_ARRAYが必要でしたが、MVVMとRetrofitを使用した1行2列のパスKotlinコルーチンでBEGIN_OBJECTでした

  26. 26

    BEGIN_ARRAYが必要でしたが、gson、android、retrofitでBEGIN_OBJECTエラーが発生しました

  27. 27

    GSONを使用したJson解析:JsonSyntaxException:java.lang.IllegalStateException:BEGIN_OBJECTが必要ですが、行1、列2のパス$でBEGIN_ARRAYでした

  28. 28

    Java gsonエラー:BEGIN_OBJECTが必要ですが、BEGIN_ARRAYでした(ただし、タイプマップは正しいですか?)

  29. 29

    後付けエラー:BEGIN_OBJECTが必要でしたが、BEGIN_ARRAYでした

ホットタグ

アーカイブ