Как получить доступ к данным из объектов Java, автоматически сгенерированных в массиве?

Да. Использование последовательной очереди обеспечивает последовательное выполнение задач. Единственное отличие состоит в том, что dispatch_sync возвращается только после завершения блока, тогда как dispatch_async возвращается после его добавления в очередь и может не закончиться.

для этого кода

dispatch_async(_serialQueue, ^{ printf("1"); });
printf("2");
dispatch_async(_serialQueue, ^{ printf("3"); });
printf("4");

Он может печатать 2413 или 2143 или 1234, но 1 всегда перед 3

для этого кода

dispatch_sync(_serialQueue, ^{ printf("1"); });
printf("2");
dispatch_sync(_serialQueue, ^{ printf("3"); });
printf("4");

он всегда печатает 1234


Примечание: для первого кода не будет печатать 1324. Поскольку printf("3") отправляется после выполнения printf("2"). И задача может быть выполнена только после отправки .


Время выполнения задач ничего не меняет. Этот код всегда печатает 12

dispatch_async(_serialQueue, ^{ sleep(1000);printf("1"); });
dispatch_async(_serialQueue, ^{ printf("2"); });

Что может случиться, это

  • Тема 1: dispatch_async трудоемкая задача (задача 1) в последовательную очередь
  • Тема 2: запуск выполнения задачи 1
  • Тема 1: dispatch_async другая задача (задача 2) в последовательную очередь
  • Thread 2: задача 1 завершена. запустить выполнение задачи 2
  • Thread 2: задача 2 закончена.

, и вы всегда видите 12

1
задан AwadOdeh 17 January 2019 в 03:46
поделиться

1 ответ

Использование org.apache.commons.io.IOUtils и com.fasterxml.jackson.databind.ObjectMapper быстро решит вашу проблему.

Используйте ниже:

class MegaSinList{
    private List<MegaSin> megasinList;
}

class MegaSin{
    private String codePostale;
    private String createur;
    private String creationDate;
    private String creationShop;
    private String description;
    private int identifiant;
    private String modification;
    private String nom;
    private int nombreEmploye;
    private String rue;
    private String statutLegal;
    private long turnOverRange1;
    private long turnOverRange2;
    private String type;
    private String ville;
}

и поиск извлечения ..

byte[] jsonData = IOUtils.toByteArray("/...filepath../file.json").getInputStream());
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
MegaSinList magasinListObj = objectMapper.readValue(jsonData, MegaSinList.class);
return magasinListObj;

Помните, что в зависимости от структуры json ObjectMapper может возвращать список LinkedHashMap, содержащий пары ключ-значение. Таким образом, вы можете в конечном итоге получить с помощью map.get («ключ») из этого списка и поместить в нужный объект

0
ответ дан Ashutosh 17 January 2019 в 03:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: