private List<RegionInstance> parseRegions(JsonParser parser, String segment) throws JsonParseException, IOException {

        JsonToken current = parser.nextToken();

        assertExpectedJsonToken(current, JsonToken.START_ARRAY, parser.getCurrentLocation());
        List<RegionInstance> instances = new ArrayList<RegionInstance>();
        while ((current = parser.nextToken()) != JsonToken.END_ARRAY) {

            assertExpectedJsonToken(current, JsonToken.START_OBJECT, parser.getCurrentLocation());

            String regionId = getNextTextValue("cid", parser); // get regionId
            RegionEnum region = RegionEnum.valueOf(regionId);

            current = parser.nextToken(); // move to field: widgtes
            assertExpectedFiled(parser.getCurrentName(), "widgets", parser.getCurrentLocation());
            RegionInstance instance = new RegionInstance();
            instance.setWidgtes(parseWidgets(parser, region));
            instances.add(instance);

            assertExpectedJsonToken((current = parser.nextToken()), JsonToken.END_OBJECT, parser.getCurrentLocation());
        }
        return instances;

    }
@param parser
@param layoutId
@throws JsonParseException
@throws IOException
src/test/java/com/alibaba/json/test/performance/JacksonPageModelParser.java