class JSONPathSingleNameString
        extends JSONPathTyped {
    final long nameHashCode;
    final String name;

    public JSONPathSingleNameString(JSONPathSingleName jsonPath) {
        super(jsonPath, String.class);
        this.nameHashCode = jsonPath.nameHashCode;
        this.name = jsonPath.name;
    }

    @Override
    public Object extract(JSONReader jsonReader) {<FILL_FUNCTION_BODY>}
}

        if (jsonReader.jsonb) {
            if (jsonReader.isObject()) {
                jsonReader.nextIfObjectStart();
                while (!jsonReader.nextIfObjectEnd()) {
                    long nameHashCode = jsonReader.readFieldNameHashCode();
                    if (nameHashCode == 0) {
                        continue;
                    }

                    boolean match = nameHashCode == this.nameHashCode;
                    if (!match && (!jsonReader.isObject()) && !jsonReader.isArray()) {
                        jsonReader.skipValue();
                        continue;
                    }

                    return jsonReader.readString();
                }
            }
        } else if (jsonReader.nextIfObjectStart()) {
            while (!jsonReader.nextIfObjectEnd()) {
                long nameHashCode = jsonReader.readFieldNameHashCode();
                boolean match = nameHashCode == this.nameHashCode;

                if (!match) {
                    jsonReader.skipValue();
                    continue;
                }

                return jsonReader.readString();
            }
        }

        return null;
    
<methods>public boolean contains(java.lang.Object) ,public java.lang.Object eval(java.lang.Object) ,public java.lang.Object extract(com.alibaba.fastjson2.JSONReader) ,public java.lang.String extractScalar(com.alibaba.fastjson2.JSONReader) ,public com.alibaba.fastjson2.JSONPath getParent() ,public java.lang.reflect.Type getType() ,public boolean isRef() ,public static com.alibaba.fastjson2.JSONPath of(com.alibaba.fastjson2.JSONPath, java.lang.reflect.Type) ,public boolean remove(java.lang.Object) ,public void set(java.lang.Object, java.lang.Object) ,public transient void set(java.lang.Object, java.lang.Object, com.alibaba.fastjson2.JSONReader.Feature[]) ,public void setCallback(java.lang.Object, BiFunction#RAW) ,public void setInt(java.lang.Object, int) ,public void setLong(java.lang.Object, long) <variables>final non-sealed com.alibaba.fastjson2.JSONPath jsonPath,final non-sealed java.lang.reflect.Type type