code: def from_json(self, js, groups: Iterable[Group]):
          
          self.index = js["index"]
          self.groupIndex = js["groupIndex"]
          self.label = js["label"]
          self.functionalChannelType = FunctionalChannelType.from_str(
              js["functionalChannelType"], js["functionalChannelType"]
          )
          self.groups = []
          for id in js["groups"]:
              for g in groups:
                  if g.id == id:
                      self.groups.append(g)
                      break
docs: this function will load the functional channel object 
          from a json object and the given groups 
          
          Args:
              js(dict): the json object
              groups(Iterable[Group]): the groups for referencing