Dartlang:如何从json获取密钥和值?

时间:2014-07-04 09:30:18

标签: json checkbox dart

我有一点问题,无法解决问题。我创建了一个带复选框的表,它正常工作,可以毫无问题地保存到json。现在我想让我的复选框在页面加载时从json数据设置默认值(以便更容易编辑)。无论如何,这是我的代码:

//row index
var index = 0;

//gets full info of student
var responseStudent = rpc.call('db.findOne', ['StudentAnket', {
    '_id': '${this.objId}'
  }]);
result = responseStudent['result'];

//gets info needed for my table
//{anket: true, request: true, statement: false, etc...}
var resultMat = result['listmaterial'];

//materials is a list which contains id, name of rows
materials.forEach((m) {

  //creating table body
  index = index + 1;
  tbody.append(new Element.tr()
      ..append(new TableCellElement()..text = index.toString())
      ..append(new TableCellElement()..append(new LabelElement()
              ..text = m['name']
              ..setAttribute('for', m['id'])))
      ..append(new TableCellElement()..append(new InputElement()
              ..id = m['id']
              ..type = "checkbox"
              ..checked = "VALUE TAKEN FROM JSON")));
});

那么如何从resultMat获取键和值并为每个复选框设置checked属性?

编辑:

  List materials = [{
  'id': 'anket',
  'name': 'Student anket'
}, {
  'id': 'request',
  'name': 'Request'
}, {
  'id': 'statement',
  'name': 'Statement'
}, {
  'id': 'marklist',
  'name': 'Mark List'
}];

1 个答案:

答案 0 :(得分:1)

您的materials结构外观的信息并不清楚。列表只有一个值而不是两个(' id,'行名称')。首先,您必须确保您的JSON不是String而是Dart数据结构(列表,地图,值)。

您可以查看此问题的答案,了解其工作原理 Dart Parse JSON into Table

然后你应该能够访问像

这样的值
..checked = resultMat[m['id']] ;