フラッターエラー:型 'int'は型キャストの型 'String'のサブタイプではありません

レモン汁

Flutterアプリを使用してRESTAPIからデータを取得しようとしています。でモデルクラスを構築していjson_serializable wayます。以下は私のコードです。

main.dart

import 'package:flutter/material.dart';
import 'dart:convert' as convert;
import 'package:http/http.dart' as http;

import './category.dart';

void main()
{
  runApp(MyApp());
}

class MyApp extends StatefulWidget
{
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return HttpTestState();
  }

}

class HttpTestState extends State<MyApp>
{
  @override
  Widget build(BuildContext context) {

    //bookFind();
    productFind();

    return MaterialApp(
      title: 'Flutter layout demo',
      home: Scaffold(

        body: Scaffold(appBar: AppBar(title: Text("HTTP Test"),),
    body: Container(child: Text("data"),),)
        ),

    );

  }

productFind() async{
  var url = "http://10.0.2.2:8080/xxx/rest/productCategory/getAllProductCategories";

  // Await the http get response, then decode the json-formatted responce.
  var response = await http.get(Uri.encodeFull(url), headers: {"Accept": "application/json"});
  if (response.statusCode == 200) {
   print("Response Body: "+response.body);

     List userMap = convert.jsonDecode(response.body);
     Category ProductCategories = new Category.fromJson(userMap[0]);

  } else {
    print("Request failed with status: ${response.statusCode}.");
  }
}


}

category.dart(モデルクラス)

import 'package:json_annotation/json_annotation.dart';

part 'category.g.dart';

@JsonSerializable()


class Category
{
  int idproductCategory;
  String categoryName;
  String imageURL;
  String deleteTimestamp;
  String dateCreated;
  String lastUpdated;

  Category(this.idproductCategory, this.categoryName, this.imageURL, this.deleteTimestamp, this.dateCreated, this.lastUpdated);

  factory Category.fromJson(Map<String, dynamic> json) => _$CategoryFromJson(json);

  Map<String, dynamic> toJson() => _$CategoryToJson(this);
}

category.g.dart(によって生成されたクラスjson_serializable

// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'category.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

Category _$CategoryFromJson(Map<String, dynamic> json) {
  return Category(
      json['idproductCategory'] as int,
      json['categoryName'] as String,
      json['imageURL'] as String,
      json['deleteTimestamp'] as String,
      json['dateCreated'] as String,
      json['lastUpdated'] as String);
}

Map<String, dynamic> _$CategoryToJson(Category instance) => <String, dynamic>{
      'idproductCategory': instance.idproductCategory,
      'categoryName': instance.categoryName,
      'imageURL': instance.imageURL,
      'deleteTimestamp': instance.deleteTimestamp,
      'dateCreated': instance.dateCreated,
      'lastUpdated': instance.lastUpdated
    };

指定されたURLに対するJSON応答は次のようになります。

[{
        "idproductCategory": 1,
        "categoryName": "Fruits",
        "imageURL": "https://images.unsplash.com/photo-1512621776951-a57141f2eefd?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60",
        "deleteTimestamp": null,
        "dateCreated": 1550056389000,
        "lastUpdated": 1550056389000
    },
    {
        "idproductCategory": 2,
        "categoryName": "Vegetables",
        "imageURL": "https://images.unsplash.com/photo-1522184216316-3c25379f9760?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60",
        "deleteTimestamp": null,
        "dateCreated": 1550056389000,
        "lastUpdated": 1550056389000
    }]

ただし、コードを実行すると、次のエラーが発生します。

E/flutter ( 6448): [ERROR:flutter/shell/common/shell.cc(178)] Dart Error: Unhandled exception:
E/flutter ( 6448): type 'int' is not a subtype of type 'String' in type cast
E/flutter ( 6448): #0      _$CategoryFromJson 
E/flutter ( 6448): #1      new Category.fromJson 
E/flutter ( 6448): #2      HttpTestState.productFind 
E/flutter ( 6448): <asynchronous suspension>
E/flutter ( 6448): #3      HttpTestState.build 
E/flutter ( 6448): #4      StatefulElement.build 
E/flutter ( 6448): #5      ComponentElement.performRebuild 
E/flutter ( 6448): #6      Element.rebuild 
E/flutter ( 6448): #7      BuildOwner.buildScope 
E/flutter ( 6448): #8      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame 
E/flutter ( 6448): #9      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback 
E/flutter ( 6448): #10     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback 
E/flutter ( 6448): #11     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame 
E/flutter ( 6448): #12     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> 
E/flutter ( 6448): #13     Timer._createTimer.<anonymous closure> (dart:async/runtime/libtimer_patch.dart:21:15)
E/flutter ( 6448): #14     _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
E/flutter ( 6448): #15     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
E/flutter ( 6448): #16     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)

どうしてこれなの?

nonybrighto

dateCreatedにはintタイムスタンプがありますが、カテゴリモデルには文字列データ型があります。変更String dateCreated;およびString lastUpdated;カテゴリモデル内へint dateCreatedint lastUpdatedそれぞれ

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

エラー:型 'String'は型キャストの型 'List <dynamic>'のサブタイプではありません

分類Dev

タイプ 'int'は、POSTリクエストの送信時に型キャストのタイプ 'String'のサブタイプではありません

分類Dev

タイプ 'TextEditingController'は、型キャストのタイプ 'int'のサブタイプではありません

分類Dev

タイプ 'int'は、Dartのタイプ 'String'エラーのサブタイプではありません

分類Dev

Flutter'List <Data> 'は型キャストのタイプ' String 'のサブタイプではありません

分類Dev

_InternalLinkedHashMap <String、dynamic> 'は、型キャストのタイプ' List <dynamic> 'のサブタイプではありません

分類Dev

フラッターでのjson解析のエラー。タイプ '_InternalLinkedHashMap <String、dynamic>'は、型キャストのタイプ 'ResultData'のサブタイプではありません

分類Dev

フラッターエラー:タイプ 'AddressInfo'はタイプキャストのタイプ 'String'のサブタイプではありません

分類Dev

未処理の例外:タイプ 'int'はタイプ 'String'のサブタイプではありません

分類Dev

Eroor:タイプ '_InternalLinkedHashMap <String、dynamic>'は、型キャストのタイプ 'List <dynamic>'のサブタイプではありません

分類Dev

タイプ 'Future <String>'は、フラッターでキャストされたタイプのタイプ 'String'のサブタイプではありません

分類Dev

タイプintは、タイプstring FlutterFirebaseのサブタイプではありません

分類Dev

'_InternalLinkedHashMap <dynamic、dynamic>'は、型キャストのタイプ 'Map <String、dynamic>'のサブタイプではありません

分類Dev

エラー:fromjsonをフラッターで使用しているときに、タイプ 'String'が 'index'のタイプ 'int'のサブタイプではありません

分類Dev

タイプ 'int'は、ハッカーニュースのフラッターウィジェットテストのタイプ 'String'のサブタイプではありません

分類Dev

このエラーが発生する:type'String 'は、フラッターアプリの' index 'のタイプ' int 'のサブタイプではありません

分類Dev

タイプ 'int'は、タイプcastjsonのタイプ 'String'のサブタイプではありません| デコードの問題

分類Dev

Flutter: 'NoSuchMethodError'はString型のサブタイプではありません

分類Dev

フラッターエラー:タイプ '_InternalLinkedHashMap <String、dynamic>'はタイプ 'String'のサブタイプではありません

分類Dev

フラッターエラー:タイプ '(String、ItemPriority)=> void'はタイプ '(String、[ItemPriority])=> dynamic'のサブタイプではありません

分類Dev

エラータイプ '_InternalLinkedHashMap <String、dynamic>'はタイプ 'String'のサブタイプではありません

分類Dev

'文字列'は 'int'フラッターのサブタイプではありません

分類Dev

フラッターマッピングエラー:タイプ 'String'はタイプキャストのタイプ 'Widget'のサブタイプではありません

分類Dev

Flutter:jsonをホスティングから解析する場合、タイプ 'String'はタイプ 'int'のサブタイプではありません

分類Dev

フラッターエラー:List <dynamic>はタイプMap <String、dynamic>のサブタイプではありません

分類Dev

Flutter-未処理の例外:タイプ 'String'はタイプ 'int'のサブタイプではありません 'index'

分類Dev

intへのvoidポインタの型キャストエラー

分類Dev

エラー:List <dynamic>はタイプMap <String、dynamic>のサブタイプではありません

分類Dev

エラー '_InternalLinkedHashMap <String、dynamic>'はタイプ 'Iterable <dynamic>'のサブタイプではありません

Related 関連記事

  1. 1

    エラー:型 'String'は型キャストの型 'List <dynamic>'のサブタイプではありません

  2. 2

    タイプ 'int'は、POSTリクエストの送信時に型キャストのタイプ 'String'のサブタイプではありません

  3. 3

    タイプ 'TextEditingController'は、型キャストのタイプ 'int'のサブタイプではありません

  4. 4

    タイプ 'int'は、Dartのタイプ 'String'エラーのサブタイプではありません

  5. 5

    Flutter'List <Data> 'は型キャストのタイプ' String 'のサブタイプではありません

  6. 6

    _InternalLinkedHashMap <String、dynamic> 'は、型キャストのタイプ' List <dynamic> 'のサブタイプではありません

  7. 7

    フラッターでのjson解析のエラー。タイプ '_InternalLinkedHashMap <String、dynamic>'は、型キャストのタイプ 'ResultData'のサブタイプではありません

  8. 8

    フラッターエラー:タイプ 'AddressInfo'はタイプキャストのタイプ 'String'のサブタイプではありません

  9. 9

    未処理の例外:タイプ 'int'はタイプ 'String'のサブタイプではありません

  10. 10

    Eroor:タイプ '_InternalLinkedHashMap <String、dynamic>'は、型キャストのタイプ 'List <dynamic>'のサブタイプではありません

  11. 11

    タイプ 'Future <String>'は、フラッターでキャストされたタイプのタイプ 'String'のサブタイプではありません

  12. 12

    タイプintは、タイプstring FlutterFirebaseのサブタイプではありません

  13. 13

    '_InternalLinkedHashMap <dynamic、dynamic>'は、型キャストのタイプ 'Map <String、dynamic>'のサブタイプではありません

  14. 14

    エラー:fromjsonをフラッターで使用しているときに、タイプ 'String'が 'index'のタイプ 'int'のサブタイプではありません

  15. 15

    タイプ 'int'は、ハッカーニュースのフラッターウィジェットテストのタイプ 'String'のサブタイプではありません

  16. 16

    このエラーが発生する:type'String 'は、フラッターアプリの' index 'のタイプ' int 'のサブタイプではありません

  17. 17

    タイプ 'int'は、タイプcastjsonのタイプ 'String'のサブタイプではありません| デコードの問題

  18. 18

    Flutter: 'NoSuchMethodError'はString型のサブタイプではありません

  19. 19

    フラッターエラー:タイプ '_InternalLinkedHashMap <String、dynamic>'はタイプ 'String'のサブタイプではありません

  20. 20

    フラッターエラー:タイプ '(String、ItemPriority)=> void'はタイプ '(String、[ItemPriority])=> dynamic'のサブタイプではありません

  21. 21

    エラータイプ '_InternalLinkedHashMap <String、dynamic>'はタイプ 'String'のサブタイプではありません

  22. 22

    '文字列'は 'int'フラッターのサブタイプではありません

  23. 23

    フラッターマッピングエラー:タイプ 'String'はタイプキャストのタイプ 'Widget'のサブタイプではありません

  24. 24

    Flutter:jsonをホスティングから解析する場合、タイプ 'String'はタイプ 'int'のサブタイプではありません

  25. 25

    フラッターエラー:List <dynamic>はタイプMap <String、dynamic>のサブタイプではありません

  26. 26

    Flutter-未処理の例外:タイプ 'String'はタイプ 'int'のサブタイプではありません 'index'

  27. 27

    intへのvoidポインタの型キャストエラー

  28. 28

    エラー:List <dynamic>はタイプMap <String、dynamic>のサブタイプではありません

  29. 29

    エラー '_InternalLinkedHashMap <String、dynamic>'はタイプ 'Iterable <dynamic>'のサブタイプではありません

ホットタグ

アーカイブ