public static <T> List<T> parseListFrom(JsonParser parser, Schema<T> schema,
            boolean numeric) throws IOException
    {
        if (parser.nextToken() != JsonToken.START_ARRAY)
        {
            throw new JsonInputException("Expected token: [ but was " +
                    parser.getCurrentToken() + " on message: " +
                    schema.messageFullName());
        }

        final JsonInput input = new JsonInput(parser, numeric);
        final List<T> list = new ArrayList<T>();
        for (JsonToken t = parser.nextToken(); t != JsonToken.END_ARRAY; t = parser.nextToken())
        {
            if (t != JsonToken.START_OBJECT)
            {
                throw new JsonInputException("Expected token: { but was " +
                        parser.getCurrentToken() + " on message " +
                        schema.messageFullName());
            }

            final T message = schema.newMessage();
            schema.mergeFrom(input, message);

            if (parser.getCurrentToken() != JsonToken.END_OBJECT)
            {
                throw new JsonInputException("Expected token: } but was " +
                        parser.getCurrentToken() + " on message " +
                        schema.messageFullName());
            }

            list.add(message);
            input.reset();
        }
        return list;
    }
Parses the {@code messages} from the parser using the given {@code schema}.
protostuff-json/src/main/java/io/protostuff/JsonIOUtil.java