@Nullable public static SourceSepaDebitData fromJson(JSONObject jsonObject) { if (jsonObject == null) { return null; } SourceSepaDebitData sepaData = new SourceSepaDebitData(); sepaData.setBankCode(optString(jsonObject, FIELD_BANK_CODE)) .setBranchCode(optString(jsonObject, FIELD_BRANCH_CODE)) .setCountry(optString(jsonObject, FIELD_COUNTRY)) .setFingerPrint(optString(jsonObject, FIELD_FINGERPRINT)) .setLast4(optString(jsonObject, FIELD_LAST4)) .setMandateReference(optString(jsonObject, FIELD_MANDATE_REFERENCE)) .setMandateUrl(optString(jsonObject, FIELD_MANDATE_URL)); Map<String, Object> nonStandardFields = jsonObjectToMapWithoutKeys(jsonObject, sepaData.mStandardFields); if (nonStandardFields != null) { sepaData.setAdditionalFields(nonStandardFields); } return sepaData; }