我有回应
[{details: {macId:789101112}}]
jsonData ['details']将返回字符串{macId:789101112}
解析代码:
fromJson(Map<String, dynamic> jsonData) => User(
details: UserDetails.fromJson(jsonData['details'] as Map<String, dynamic>),
);
class UserDetails{
final String macId;
UserDetails({this.macId});
static UserDetails fromJson(Map<String, dynamic> json) =>
UserDetails(macId: json['macId'] as String);
}
答案 0 :(得分:0)
尝试查看原始来源。根据您的描述,听起来像是这样:
[{"details": "{\"macId\": 789101112}"}]
也就是说,"details"
条目的 value 是包含JSON源代码的 string 。
您将需要第二次解析:
fromJson(Map<String, dynamic> jsonData) =>
User(details: UserDetails.fromJson(jsonDecode(jsonData['details'])));
其原因很可能是您从UserDetails
对象生成JSON数据的地方,它在地图上调用jsonEncode
,但不应这样做。只需让UserDetails
-to-JSON函数返回一个映射,即可将该映射嵌入更大的类似JSON的数据结构中。然后,您也不需要第二个jsonDecode
。