private void genReadHashCode64ValueForNonDefaultConstructor(
            ObjectReadContext context,
            MethodWriterContext mwc,
            int HASH_CODE64,
            boolean fieldBased,
            int OBJECT,
            Label L_FOR_INC
    ) {
        /*
         *  swith(this.getFieldOrdinal(hashCode64)) {
         *      case 0:
         *          fieldValue0 = ...;
         *          break;
         *      case 1:
         *          fieldValue0 = ...;
         *          break;
         *      default:
         *          skipValue();
         *          break;
         *  }
         *  goto
         */
        FieldReader[] fieldReaderArray = context.fieldReaders;
        MethodWriter mw = mwc.mw;
        mw.aload(THIS);
        mw.lload(HASH_CODE64);
        mw.invokevirtual(TYPE_OBJECT_READER_ADAPTER, "getFieldOrdinal", "(J)I");

        Label dflt = new Label();
        Label[] labels = new Label[fieldReaderArray.length];
        int[] switchKeys = new int[fieldReaderArray.length];
        for (int i = 0; i < fieldReaderArray.length; i++) {
            labels[i] = new Label();
            switchKeys[i] = i;
        }

        mw.visitLookupSwitchInsn(dflt, switchKeys, labels);

        for (int i = 0; i < fieldReaderArray.length; i++) {
            mw.visitLabel(labels[i]);
            FieldReader fieldReader = fieldReaderArray[i];
            genReadFieldValue(
                    context,
                    fieldReader,
                    fieldBased,
                    mwc,
                    OBJECT,
                    i,
                    false
            );
            mw.goto_(L_FOR_INC);
        }

        // jsonReader.skipValue();
        mw.visitLabel(dflt);
        mw.aload(JSON_READER);
        mw.invokevirtual(TYPE_JSON_READER, "skipValue", "()V");
    }
<blockquote><pre>
     class Bean {
         private String field1;
         private int field2;
     }

     public void readJSONBObject(JSONReader jsonReader, Type fieldType, Object fieldName, long features) {
         features = jsonReader.features(features);
         if (nextIfNull()) {
             return null;
         }

         jsonReader.errorOnNoneSerializable(this.objectClass);

         if (jsonReader.isArray() && jsonReader.isSupportBeanArray()) {
             return readArrayMappingObject(jsonReader, fieldType, fieldName, features);
         }

         Bean object = new Bean();

         jsonReader.nextIfObjectStart();

         for (;;) {
             if (jsonReader.nextIfObjectEnd()) {
                 break;
             }
             switch(jsonReader.getRawInt()) {
                 case field1NameHash32:
                     if(jsonReader.nextIfName4Match2()) {
                         object.field1 = jsonReader.readString();
                         break;
                     }
                     goto hashCode64Start;
                 case field2NameHash32:
                     if(jsonReader.nextIfName4Match2()) {
                         object.field2 = jsonReader.readInt();
                         break;
                     }
                     goto hashCode64Start;
                 default:
                     goto hashCode64Start;
             }

             hashCode64Start:
             long hashCode64 = readFieldNameHashCode();

             if (this.typeKeyHashCode == hashCode64) {
                 object = this.autoType(jsonReader);
             }

             switch(jsonReader.getFieldOrdinal(hashCode64)) {
                 case 0:
                     object.field1 = jsonReader.readString();
             }
         }


     }
 </pre></blockquote>
core/src/main/java/com/alibaba/fastjson2/reader/ObjectReaderCreatorASM.java