1

I'm trying to parse JSON in a flutter. but I got an error. please help me if anyone knows the solution. I have loaded the JSON file from the assets folder successfully. but when I tried to parse it in LaguageModel. I have got an error. Please tell me a solution if anyone knows it.

JSON file:

languages.json:

{
   "sq":{
        "name":"Albanian",
        "nativeName":"Shqip"
    },
    "am":{
        "name":"Amharic",
        "nativeName":"አማርኛ"
    },
}

Jsonparse.dart:

Future<String> loadJsonData() async {
    var jsonText = await rootBundle.loadString('assets/languages.json');
    var data = json.decode(jsonText);
    LanguageModel model = LanguageModel.fromJson(data);
    return 'success';
  }    
  @override
  void initState() {
    super.initState();
    this.loadJsonData();
  }


LanguageModel.dart

class LanguageModel {
  final LanguageCode code;

  LanguageModel({this.code});

  factory LanguageModel.fromJson(Map<String, dynamic> json) {
    return LanguageModel(code: LanguageCode.fromJson(json["code"]));
  }
}

LanguageCode.dart

class LanguageCode {
  String name;
  String nativeName;

  LanguageCode({this.name, this.nativeName});

  factory LanguageCode.fromJson(Map<String, dynamic> json) {
    return LanguageCode(name: json['name'], nativeName: json['nativeName']);
  }
}

Error:

E/flutter (13381): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: NoSuchMethodError: The method '[]' was called on null.
E/flutter (13381): Receiver: null
E/flutter (13381): Tried calling: []("name")
E/flutter (13381): #0      Object.noSuchMethod (dart`enter code here`:core-patch/object_patch.dart:54:5)
E/flutter (13381): #1      new LanguageCode.fromJson (package:freebookshare/Screens/AddBookRequest.dart:124:35)
E/flutter (13381): #2      new LanguageModel.fromJson (package:freebookshare/Screens/AddBookRequest.dart:91:45)
E/flutter (13381): #3      _AddBookRequestState.loadJsonData (package:freebookshare/Screens/AddBookRequest.dart:22:41)
E/flutter (13381): <asynchronous suspension>
E/flutter (13381):
18Ashelar
  • 74
  • 8

0 Answers0