Как проверить атрибуты, содержащиеся в списке - PullRequest
0 голосов
/ 15 апреля 2019

У меня ответ API:

1 Ответ

0 голосов
/ 16 апреля 2019

Это не вопрос огурца. Это скорее вопрос о том, как вы можете преобразовать некоторые json в что-то, что вы можете проверить, является правильным.

Я вижу три или четыре разных аппроксимации, все они включают в себя внешнюю библиотеку для анализа json и преобразования ее в объект Java, который вы можете утверждать с помощью своей обычной платформы утверждений.

Начните с того, что спросите своих разработчиков, какую библиотеку они используют для работы с json. Если у вашего проекта нет предпочтительного способа работы с json, я бы добавил тестовую зависимость к

<dependency>
  <groupId>org.json</groupId>
  <artifactId>json</artifactId>
  <version>20180813</version>
</dependency>

и используйте его для разбора строки json на объект, который можно проверить.

Возможно, стоит отметить, что ваш пример недействителен json, так как он не начинается с { или заканчивается }

Исправление этого дает пример, который выглядит так:

{"Name": [
  {
    "abc1": "xyz2",
    "abc": "xyz"
  },
  {
    "abc1": "xyz21",
    "abc": "yzk"
  },
  {
    "abc1": "xyz211",
    "abc": "zxc"
  }
]}

С помощью этого примера я смог реализовать пример, который выглядит следующим образом:

package se.thinkcode;

import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class ParseJson {

    @Test
    public void verifyNameArray() {
        JSONObject jsonObject = new JSONObject(getSample());
        JSONArray array = jsonObject.getJSONArray("Name");

        assertThat(array.length()).isEqualTo(3);
    }

    private String getSample() {
        return "{\n" +
                "\"Name\": [\n" +
                "  {\n" +
                "    \"abc\": \"xyz\",\n" +
                "    \"abc1\": \"xyz2\"              \n" +
                "  },\n" +
                "  {\n" +
                "    \"abc\": \"yzk\",\n" +
                "    \"abc1\": \"xyz21\"\n" +
                "  },\n" +
                "  {\n" +
                "    \"abc\": \"zxc\",\n" +
                "    \"abc1\": \"xyz211\"\n" +
                "  }\n" +
                "]" +
                "\n}";
    }
}

Ваша задача - взять массив, проверить каждый элемент в нем и посмотреть, содержит ли он то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...