{
"transactionId": "11f8ecc05273e35a4eb2dc1a",
"type": "REQUEST_FOR_HH_INTERVIEW",
"answers": {
  "selectProvinceDistrictCommuneVillage": {
    "value": "01020706"
  },
  "positionOfOfficial": {
    "value": "Province Officer"
  },
  "enterKhmerName": {
    "value": "សុខ"
  },
  "selectSex": {
    "value": "MALE"
  },
  "dob": {
    "value": "1994-06-15T03:27:47.409Z"
  },
  "areYouMarried": {
    "value": "YES"
  },
  "scanSpousesID": {
    "value": "435465"
  },
  "enterSpousesKhmerName": {
    "value": "នារី"
  },
  "selectSexSpouse": {
    "value": "FEMALE"
  },
  "dobSpouse": {
    "value": "1996-08-15T03:27:47.409"
  },
  "numberOfMales": {
    "value": "4"
  },
  "numberOfFemales": {
    "value": "5"
  },
  "selectReasonForRequesting": {
    "value": [
      "NATURAL_DISASTER"
    ]
  }
}
}

这就是我需要解析到dart模型中的JSON.这个 struct 的问题是, map 内部的答案都是动态的.此外,答案中的 map 数量并不总是相同的.例如,下一个JSON响应可以是.

{
 "transactionId": "11f8ecc05273e35a4eb2dc1a",
 "type": "REQUEST_FOR_HH_INTERVIEW",
 "answers": {
   "selectCode": {
   "value": "01020706"
  },
  "selectRoomValue": {
  "value": "1996-08-15T03:27:47.409"
 },
 "numberOfFamilyMembers": {
  "value": "4"
  },
 "selectFoods": {
   "value": [
     "Piza",
     "Burger"
   ]
  }
 }
}

这与第一个react 不同.我需要制作一个dart模型来解析这两个响应.

推荐答案

通过使用Answers的"子模型"可以相对容易地做到这一点,该子模型将存储在假定的InterviewRequest模型中.

例如:

class InterviewRequest {
  final Answers answers;
  final String transactionId;

  factory InterviewRequest.fromJson(Map<String, dynamic> json) {
    return InterviewRequest(
      answers: Answers.fromJson(json['answers']),
      transactionId: json['transactionId'] as String,
    );
  }
}

class Answers {
  final List<Map<String, dynamic>> answers;

  factory Answers.fromJson(Map<String, dynamic> json) {
    List answers = [];
    for (String question in json.keys)
      answers.add(Answer(question, json[key]));
    return Answers(answers);
  }
}

Json相关问答推荐

jq不会为空输入返回非零

输入请求中不存在null的条件抖动

Postgres Select json数组并重新映射属性名称

在Vega中如何通过滑块改变条形图的宽度

如果主对象中已存在属性,则不应在Jolt中引用次对象

(Kotlin)com.google.gson.internal.LinkedTreeMap无法转换为com.example.phonetest2.model.HallData

JOLT转换以基于对象属性过滤JSON数组

当由.sh脚本执行时,AWS查询字符串不会提取任何数据

使用 Power BI 中的 Deneb 视觉效果绘制面积图中的 X 轴日期

ETCD 导出为 json 并从 base64 解码所有键/值到人类可读

Jolt 变换 - 如何用字段值重命名字段?

Shell脚本空格转义

如何在 powerapps 中将详细信息表单转换为 json?

如何用 Xidel 正确读取这个 JSON 文件?

如何判断 Json 对象中是否存在键并获取其值

python,将Json写入文件

如何创建 JSON 对象 Node.js

jQuery JSON 响应总是触发 ParseError

将循环 struct 转换为 JSON - 有什么方法可以找到它抱怨的字段?

如何使用 Gson 将 JSONArray 转换为 List?