All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.fastjson.parser.deserializer.MapDeserializer Maven / Gradle / Ivy

package com.alibaba.fastjson.parser.deserializer;

import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
import com.alibaba.fastjson2.util.ParameterizedTypeImpl;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Map;

public class MapDeserializer
        implements ObjectDeserializer {
    public static final MapDeserializer instance = new MapDeserializer();

    @Override
    public  T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
        return (T) parser.getRawReader().read(Map.class);
    }

    public static Map parseMap(
            DefaultJSONParser parser,
            Map map,
            Type valueType,
            Object fieldName,
            int features
    ) {
        ParameterizedType parameterizedType = new ParameterizedTypeImpl(Map.class, String.class, valueType);
        JSONReader reader = parser.getLexer().getReader();
        ObjectReader objectReader = reader.getObjectReader(parameterizedType);
        Map object = (Map) objectReader.readObject(reader, parameterizedType, fieldName, 0L);
        map.putAll(object);
        return map;
    }

    public static Map parseMap(DefaultJSONParser parser, Map map, Type valueType, Object fieldName) {
        return parseMap(parser, map, valueType, fieldName, 0);
    }

    public static Object parseMap(
            DefaultJSONParser parser,
            Map map,
            Type keyType,
            Type valueType,
            Object fieldName
    ) {
        JSONReader jsonReader = parser.getRawReader();
        jsonReader.read(map, keyType, valueType, 0L);
        return map;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy