Fastjson1xReaderModule.java

package com.alibaba.fastjson;

import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.modules.ObjectReaderModule;
import com.alibaba.fastjson2.reader.ObjectReader;
import com.alibaba.fastjson2.reader.ObjectReaderProvider;

import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Collections;

public class Fastjson1xReaderModule
        implements ObjectReaderModule {
    final ObjectReaderProvider provider;

    public Fastjson1xReaderModule(ObjectReaderProvider provider) {
        this.provider = provider;
    }

    @Override
    public ObjectReader getObjectReader(ObjectReaderProvider provider, Type type) {
        if (type == JSON.class) {
            return new JSONImpl();
        }
        return null;
    }

    static class JSONImpl
            implements ObjectReader {
        @Override
        public Object readObject(JSONReader jsonReader, Type fieldType, Object fieldName, long features) {
            if (jsonReader.isObject()) {
                return jsonReader.read(JSONObject.class);
            }
            if (jsonReader.isArray()) {
                return jsonReader.read(JSONArray.class);
            }

            throw new JSONException("read json error");
        }

        @Override
        public Object createInstance(Collection collection, long features) {
            return Collections.emptyList();
        }
    }
}