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

com.tigerbrokers.stock.openapi.client.util.FastJsonBooleanDeserializer Maven / Gradle / Ivy

package com.tigerbrokers.stock.openapi.client.util;

import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.JSONLexer;
import com.alibaba.fastjson.parser.JSONToken;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
import com.alibaba.fastjson.util.TypeUtils;
import java.lang.reflect.Type;

/**
 * Description:
 * Created by liutongping on 2021/11/18
 */
public class FastJsonBooleanDeserializer implements ObjectDeserializer {
  @Override
  public Boolean deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
    JSONLexer lexer = parser.lexer;

    Boolean boolObj;
    try {
      if (lexer.token() == 6) {
        lexer.nextToken(16);
        boolObj = Boolean.TRUE;
      } else if (lexer.token() == 7) {
        lexer.nextToken(16);
        boolObj = Boolean.FALSE;
      } else if (lexer.token() == 2) {
        int intValue = lexer.intValue();
        lexer.nextToken(16);
        if (intValue == 0) {
          boolObj = Boolean.FALSE;
        } else {
          boolObj = Boolean.TRUE;
        }
      } else {
        Object value = parser.parse();
        if (value == null) {
          return null;
        }

        boolObj = TypeUtils.castToBoolean(value);
      }
    } catch (Exception var7) {
      throw new JSONException("parseBoolean error, field : " + fieldName, var7);
    }
    return boolObj;
  }

  @Override
  public int getFastMatchToken() {
    return JSONToken.TRUE;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy