JSON непосредственно из examplesTable (JBehave) - PullRequest
0 голосов
/ 16 октября 2018

Я хочу, чтобы JSON (ObjectNode - Jackson) выглядел примерно так:

{
    "familyName":"Turing",
    "sex": "MALE",
    "givenName":"Alan",
    "dateOfBirth":"1912-06-23",
    "address":{
        "postalCode":"1111",
        "country":"Country",
        "state":"State",
        "city":"City",
        "street":"Street",
        "houseNumber":"1111"
    }
}

Это прекрасно работает для меня, если у меня нет вложенной карты (в этом примере: адрес)внутри JSON с этим шагом реализации:

public void testMethond(ExamplesTable table) {
    assertThat(table.getRowCount()).isEqualTo(1);
    Map<String, String> row = table.getRow(0);
    ObjectNode userNode = new ObjectMapper().createObjectNode();

    for (Map.Entry<String, String> entry : row.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        userNode.put(key, value);
    }
}

Он был написан до java8, поэтому набор записей (но вы можете использовать stream в своем ответе c) и это не будет работать для примеров таблиц с более чем 1 строкой.

Мой вопрос заключается в том, каков наилучший способ получить пошаговую реализацию, аналогичную моей, которая может создать JSON в качестве моего желаемого.

Мой текущий обходной путь теперь заключается в том, чтобы иметь другой вариант Когда в моемсценарий со своими собственными examplesTable для адресных данных и userNode.set ("address", addressNode) в реализации, но я не думаю, что это хороший способ сделать это.

...