Example usage for com.fasterxml.jackson.core JsonParser isExpectedStartArrayToken

List of usage examples for com.fasterxml.jackson.core JsonParser isExpectedStartArrayToken

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser isExpectedStartArrayToken.

Prototype

public boolean isExpectedStartArrayToken() 

Source Link

Document

Specialized accessor that can be used to verify that the current token indicates start array (usually meaning that current token is JsonToken#START_ARRAY ) when start array is expected.

Usage

From source file:net.troja.eve.crest.CrestDataProcessor.java

private <T> void processItems(final CrestApiProcessor<T> processor, final CrestContainer<T> container,
        final JsonParser jsonParser) throws IOException {
    if (jsonParser.isExpectedStartArrayToken()) {
        while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
            container.addEntry(processor.parseEntry((JsonNode) mapper.readTree(jsonParser)));
        }/*from   w ww.  j  a  va 2  s  .  c om*/
    }
}

From source file:javaslang.jackson.datatype.deserialize.ArrayDeserializer.java

@Override
public T deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
    JsonDeserializer<?> deserializer = deserializer(0);
    List<Object> list = new ArrayList<>();
    if (!p.isExpectedStartArrayToken()) {
        throw ctxt.mappingException(valueType.getRawClass());
    }/*  w  w  w  .  j  ava2s.c  o  m*/
    for (JsonToken jsonToken = p.nextToken(); jsonToken != END_ARRAY; jsonToken = p.nextToken()) {
        Object value = (jsonToken != VALUE_NULL) ? deserializer.deserialize(p, ctxt)
                : deserializer.getNullValue(ctxt);
        list.add(value);
    }
    return create(list, ctxt);
}

From source file:com.kaaprotech.satu.jackson.SatuDeserializers.java

@Override
public JsonDeserializer<?> findCollectionDeserializer(final CollectionType type,
        final DeserializationConfig config, final BeanDescription beanDesc,
        final TypeDeserializer elementTypeDeserializer, final JsonDeserializer<?> elementDeserializer)
        throws JsonMappingException {

    if (ImmutableSet.class.isAssignableFrom(type.getRawClass())) {
        return new StdDeserializer<Object>(type) {
            private static final long serialVersionUID = 1L;

            @Override//from  w  w  w  .j  ava 2  s  .  c o  m
            public Object deserialize(JsonParser jp, DeserializationContext context) throws IOException {

                if (jp.isExpectedStartArrayToken()) {
                    JsonToken t;

                    MutableSet<Object> s = Sets.mutable.of();

                    while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
                        Object value;
                        if (t == JsonToken.VALUE_NULL) {
                            value = null;
                        } else if (elementDeserializer == null) {
                            value = jp.readValueAs(type.getContentType().getRawClass());
                        } else if (elementTypeDeserializer == null) {
                            value = elementDeserializer.deserialize(jp, context);
                        } else {
                            value = elementDeserializer.deserializeWithType(jp, context,
                                    elementTypeDeserializer);
                        }
                        s.add(value);
                    }
                    return s.toImmutable();
                }
                throw context.mappingException(type.getRawClass());
            }
        };
    }

    return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer,
            elementDeserializer);
}

From source file:msearch.filmlisten.MSFilmlisteLesen.java

public void readFilmListe(String source, final ListeFilme listeFilme, int days) {
    JsonToken jsonToken;//from  w  ww .  ja  v a2s . c  o  m
    String sender = "", thema = "";
    listeFilme.clear();
    this.notifyStart(source, PROGRESS_MAX); // fr die Progressanzeige

    if (days > 0) {
        final long maxDays = 1000L * 60L * 60L * 24L * days;
        seconds = new Date().getTime() - maxDays;
    } else {
        seconds = 0;
    }

    try {
        InputStream in = selectDecompressor(source, getInputStreamForLocation(source));
        JsonParser jp = new JsonFactory().createParser(in);
        if (jp.nextToken() != JsonToken.START_OBJECT) {
            throw new IllegalStateException("Expected data to start with an Object");
        }

        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                for (int k = 0; k < ListeFilme.MAX_ELEM; ++k) {
                    listeFilme.metaDaten[k] = jp.nextTextValue();
                }
                break;
            }
        }
        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                // sind nur die Feldbeschreibungen, brauch mer nicht
                jp.nextToken();
                break;
            }
        }
        while (!MSConfig.getStop() && (jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                DatenFilm datenFilm = new DatenFilm();
                for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
                    //if we are in FASTAUTO mode, we dont need film descriptions.
                    //this should speed up loading on low end devices...
                    if (workMode == WorkMode.FASTAUTO) {
                        if (DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_BESCHREIBUNG_NR
                                || DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_WEBSEITE_NR
                                || DatenFilm.COLUMN_NAMES_JSON[i] == DatenFilm.FILM_GEO_NR) {
                            jp.nextToken();
                            continue;
                        }
                    }

                    datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = jp.nextTextValue();
                    /// fr die Entwicklungszeit
                    if (datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] == null) {
                        datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = "";
                    }
                }
                if (datenFilm.arr[DatenFilm.FILM_SENDER_NR].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_SENDER_NR] = sender;
                } else {
                    sender = datenFilm.arr[DatenFilm.FILM_SENDER_NR];
                }
                if (datenFilm.arr[DatenFilm.FILM_THEMA_NR].isEmpty()) {
                    datenFilm.arr[DatenFilm.FILM_THEMA_NR] = thema;
                } else {
                    thema = datenFilm.arr[DatenFilm.FILM_THEMA_NR];
                }

                listeFilme.importFilmliste(datenFilm);
                if (seconds > 0) {
                    // muss "rckwrts" laufen, da das Datum sonst 2x gebaut werden muss
                    // wenns drin bleibt, kann mans noch ndern
                    if (!checkDate(datenFilm)) {
                        listeFilme.remove(datenFilm);
                    }
                }
            }
        }
    } catch (FileNotFoundException ex) {
        listeFilme.clear();
    } catch (Exception ex) {
        MSLog.fehlerMeldung(945123641, MSLog.FEHLER_ART_PROG,
                "MSearchIoXmlFilmlisteLesen.readFilmListe: " + source, ex);
        listeFilme.clear();
    }
    if (MSConfig.getStop()) {
        listeFilme.clear();
    }
    notifyFertig(source, listeFilme);
}

From source file:msearch.io.MSFilmlisteLesen.java

private boolean filmlisteJsonEinlesen(File vonDatei, ListeFilme listeFilme) {
    boolean ret = false;
    BZip2CompressorInputStream bZip2CompressorInputStream;
    JsonFactory jsonF = new JsonFactory();
    JsonParser jp = null;
    JsonToken jsonToken;/*from w w  w  .j a v  a 2 s  .c om*/
    String sender = "", thema = "";
    try {
        // ##########################################################
        // und jetzt die Liste einlesen, URL kann es jetzt schon nicht mehr sein!
        if (!vonDatei.exists()) {
            MSLog.fehlerMeldung(702030698, MSLog.FEHLER_ART_PROG, "MSearchIoXmlFilmlisteLesen.filmlisteLesen",
                    "Datei existiert nicht: " + vonDatei.getName());
            return false;
        }
        if (vonDatei.getName().endsWith(MSConst.FORMAT_XZ)) {
            XZInputStream xZInputStream = new XZInputStream(new FileInputStream(vonDatei));
            jp = jsonF.createParser(new InputStreamReader(xZInputStream, MSConst.KODIERUNG_UTF));
        } else if (vonDatei.getName().endsWith(MSConst.FORMAT_BZ2)) {
            bZip2CompressorInputStream = new BZip2CompressorInputStream(new FileInputStream(vonDatei));
            jp = jsonF.createParser(new InputStreamReader(bZip2CompressorInputStream, MSConst.KODIERUNG_UTF));
        } else if (vonDatei.getName().endsWith(MSConst.FORMAT_ZIP)) {
            ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(vonDatei));
            zipInputStream.getNextEntry();
            jp = jsonF.createParser(new InputStreamReader(zipInputStream, MSConst.KODIERUNG_UTF));
        } else {
            jp = jsonF.createParser(vonDatei); // geht so am schnellsten
        }
        if (jp.nextToken() != JsonToken.START_OBJECT) {
            throw new IOException("Expected data to start with an Object");
        }
        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                for (int k = 0; k < ListeFilme.MAX_ELEM; ++k) {
                    listeFilme.metaDaten[k] = jp.nextTextValue();
                }
                break;
            }
        }
        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                // sind nur die Feldbeschreibungen, brauch mer nicht
                jp.nextToken();
                break;
            }
        }
        while ((jsonToken = jp.nextToken()) != null) {
            if (jsonToken == JsonToken.END_OBJECT) {
                break;
            }
            if (jp.isExpectedStartArrayToken()) {
                DatenFilm datenFilm = new DatenFilm();
                for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
                    datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = jp.nextTextValue();
                    /// fr die Entwicklungszeit
                    if (datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] == null) {
                        datenFilm.arr[DatenFilm.COLUMN_NAMES_JSON[i]] = "";
                    }
                }
                if (datenFilm.arr[DatenFilm.FILM_SENDER_NR].equals("")) {
                    datenFilm.arr[DatenFilm.FILM_SENDER_NR] = sender;
                } else {
                    sender = datenFilm.arr[DatenFilm.FILM_SENDER_NR];
                }
                if (datenFilm.arr[DatenFilm.FILM_THEMA_NR].equals("")) {
                    datenFilm.arr[DatenFilm.FILM_THEMA_NR] = thema;
                } else {
                    thema = datenFilm.arr[DatenFilm.FILM_THEMA_NR];
                }
                listeFilme.importFilmliste(datenFilm);
            }
        }
        jp.close();
        ret = true;
    } catch (Exception ex) {
        MSLog.fehlerMeldung(468956200, MSLog.FEHLER_ART_PROG, "MSearchIoXmlFilmlisteLesen.filmlisteLesen", ex,
                "von: " + vonDatei.getName());
    }
    return ret;
}