當從 api 獲取資料并且未映射到模型中并且引發以下錯誤時,我遇到了一個問題我還發布了包含該fromJson函式的 BodyModel 類:
Future<BodyModel> fetchJson(http.Client client, String? id) async {
final response = await client.get(
Uri.parse(uri2),
);
if (response.statusCode == 200) {
String jsonData = response.body;
print(response.body);
//print(jsonEncode(response.body));
BodyModel alpha = responseJSON(jsonData);
//print(alpha.toSet());
//bravo = alpha;
return alpha;
} else {
throw Exception('We were not able to successfully download the json data.');
}
}
BodyModel responseJSON(String response) {
final parse = jsonDecode(response);
print(parse.toString());
final resp = parse<BodyModel>((json) => BodyModel.fromJson(json));
print(resp);
return resp;
}
import 'package:flutter/material.dart';
class BodyModel {
String body;
String title;
BodyModel({
required this.body,
required this.title,
});
factory BodyModel.fromJson(Map<String, dynamic> jsonData) {
return BodyModel(
body: jsonData['body'].toString(),
title: jsonData['title'].toString(),
);
}
}
uj5u.com熱心網友回復:
你在打電話parse<BodyModel>(...)。目前尚不清楚您認為應該做什么,但parse它是一個包含 a 的變數Map<String, dynamic>,而不是一個通用函式。它具有 type dynamic,因此在濫用它時不會收到任何警告。考慮將 parse 宣告為
Map<String, dynamic> parse = jsonDecode(response);
所以它有正確的型別。
從 的回傳型別responseJSON,我猜你想要做:
final resp = BodyModel.fromJson(parse);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497245.html
