A lot easier to read would be to use a datatable for this:
Given I have the following data:
| property1 | property2 |
| abc | 123 |
With the following step definition:
@Given("^I have the following data:$")
public void given_data(DataTable table) {
final List<Map<String, String>> rows = table.asMaps(String.class, String.class);
final Map<String, String> data = rows.get(0);
final String property1 = data.get("property1");
}
I would also suggest only specifying the properties that are relevant for the business case, and add any technical properties inside the step definition. Talking about POST and specific URLs is also already to technical for a cucumber scenario, at least in my opinion.