toJsonFromFields method

Map<String, dynamic> toJsonFromFields({
  1. O? obj,
  2. JsonEncoder? jsonEncoder,
  3. bool duplicatedEntitiesAsID = false,
  4. bool? autoResetEntityCache,
})

Returns a JSON Map from fieldsNames, calling getField for each one.

  • If obj is not provided, uses object as instance.

Implementation

Map<String, dynamic> toJsonFromFields(
    {O? obj,
    JsonEncoder? jsonEncoder,
    bool duplicatedEntitiesAsID = false,
    bool? autoResetEntityCache}) {
  obj ??= object;
  if (obj == null) {
    StateError("Null object!");
  }

  var entries = fieldsWhere((f) => f.isEntityField, obj).map((f) {
    var val = f.get();
    var name = f.jsonName;
    return MapEntry(name, val);
  });

  var map = Map<String, dynamic>.fromEntries(entries);

  jsonEncoder ??= JsonEncoder.defaultEncoder;
  return jsonEncoder.toJson(map,
      duplicatedEntitiesAsID: duplicatedEntitiesAsID,
      autoResetEntityCache: autoResetEntityCache);
}