com.alibaba.fastjson.parser.DefaultJSONParser类的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(10.5k)|赞(0)|评价(0)|浏览(764)

本文整理了Java中com.alibaba.fastjson.parser.DefaultJSONParser类的一些代码示例,展示了DefaultJSONParser类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。DefaultJSONParser类的具体详情如下:
包路径:com.alibaba.fastjson.parser.DefaultJSONParser
类名称:DefaultJSONParser

DefaultJSONParser介绍

暂无

代码示例

代码示例来源:origin: com.alibaba/fastjson

@SuppressWarnings("rawtypes")
public Object parseObject(final Map object) {
  return parseObject(object, null);
}

代码示例来源:origin: alibaba/fastjson

public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  PropertyProcessable processable;
  try {
    processable = this.type.newInstance();
  } catch (Exception e) {
    throw new JSONException("craete instance error");
  }
  Object object =parser.parse(processable, fieldName);
  return (T) object;
}

代码示例来源:origin: alibaba/fastjson

@SuppressWarnings("unchecked")
public static <T> T deserialze(DefaultJSONParser parser) {
  final JSONLexer lexer = parser.getLexer();
  if (lexer.token() == JSONToken.LITERAL_STRING) {
    String val = lexer.stringVal();
    lexer.nextToken(JSONToken.COMMA);
    return (T) val;
  }
  if (lexer.token() == JSONToken.LITERAL_INT) {
    String val = lexer.numberString();
    lexer.nextToken(JSONToken.COMMA);
    return (T) val;
  }
  Object value = parser.parse();
  if (value == null) {
    return null;
  }
  return (T) value.toString();
}

代码示例来源:origin: alibaba/fastjson

private Object parseRef(DefaultJSONParser parser, Object fieldName) {
  JSONLexer lexer = parser.getLexer();
  lexer.nextTokenWithColon(JSONToken.LITERAL_STRING);
  String ref = lexer.stringVal();
  parser.setContext(parser.getContext(), fieldName);
  parser.addResolveTask(new DefaultJSONParser.ResolveTask(parser.getContext(), ref));
  parser.popContext();
  parser.setResolveStatus(DefaultJSONParser.NeedToResolve);
  lexer.nextToken(JSONToken.RBRACE);
  parser.accept(JSONToken.RBRACE);
  return null;
}

代码示例来源:origin: com.alibaba/fastjson

/**
 *
 * @since 1.2.38
 */
public static Object parse(String text, ParserConfig config, int features) {
  if (text == null) {
    return null;
  }
  DefaultJSONParser parser = new DefaultJSONParser(text, config, features);
  Object value = parser.parse();
  parser.handleResovleTask(value);
  parser.close();
  return value;
}

代码示例来源:origin: alibaba/fastjson

public Object readObject() {
  if (context == null) {
    return parser.parse();
  }
  readBefore();
  Object object;
  switch (context.state) {
    case StartObject:
    case PropertyValue:
      object = parser.parseKey();
      break;
    default:
      object = parser.parse();
      break;
  }
  readAfter();
  return object;
}

代码示例来源:origin: com.alibaba/fastjson

context = this.context;
    } else {
      ParseContext contextR = setContext(object, fieldName);
      if (context == null) {
        context = contextR;
  key = parse();
  isObjectKey = true;
} else {
  this.setResolveStatus(TypeNameRedirect);
      && !(fieldName instanceof Integer)
      && !(this.context.fieldName instanceof Integer)) {
    this.popContext();
    this.parseObject(newObj);
    return newObj;
      && deserClass != JavaBeanDeserializer.class
      && deserClass != ThrowableDeserializer.class) {
    this.setResolveStatus(NONE);
  } else if (deserializer instanceof MapDeserializer) {
    this.setResolveStatus(NONE);
        refValue = context.object;
      } else {
        addResolveTask(new ResolveTask(context, ref));
        setResolveStatus(DefaultJSONParser.NeedToResolve);

代码示例来源:origin: actframework/actframework

ParseContext context = parser.getContext();
try {
  for (int i = 0;;++i) {
      key = lexer.scanSymbol(parser.getSymbolTable(), '"');
      lexer.skipWhitespace();
      ch = lexer.getCurrent();
      key = lexer.scanSymbol(parser.getSymbolTable(), '\'');
      lexer.skipWhitespace();
      ch = lexer.getCurrent();
      key = lexer.scanSymbolUnQuoted(parser.getSymbolTable());
      lexer.skipWhitespace();
      ch = lexer.getCurrent();
      parser.setContext(context);
      lexer.nextToken();
    } else {
      value = parser.parseObject(Object.class, key);
      if (value instanceof Map) {
        Map tmp = (Map)value;
    parser.checkMapResolve(map, key);
    parser.setContext(context, value, key);
    parser.setContext(context);

代码示例来源:origin: com.alibaba/fastjson

@SuppressWarnings("unchecked")
public static <T> T parseObject(String input, Type clazz, ParserConfig config, ParseProcess processor,
                   int featureValues, Feature... features) {
  if (input == null) {
    return null;
  }
  if (features != null) {
    for (Feature feature : features) {
      featureValues |= feature.mask;
    }
  }
  DefaultJSONParser parser = new DefaultJSONParser(input, config, featureValues);
  if (processor != null) {
    if (processor instanceof ExtraTypeProvider) {
      parser.getExtraTypeProviders().add((ExtraTypeProvider) processor);
    }
    if (processor instanceof ExtraProcessor) {
      parser.getExtraProcessors().add((ExtraProcessor) processor);
    }
    if (processor instanceof FieldTypeResolver) {
      parser.setFieldTypeResolver((FieldTypeResolver) processor);
    }
  }
  T value = (T) parser.parseObject(clazz, null);
  parser.handleResovleTask(value);
  parser.close();
  return (T) value;
}

代码示例来源:origin: AlibabaTech/fastjson

@SuppressWarnings("unchecked")
public static final <T> T parseObject(String input, Type clazz, ParserConfig config, int featureValues,
                   Feature... features) {
  if (input == null) {
    return null;
  }
  for (Feature featrue : features) {
    featureValues = Feature.config(featureValues, featrue, true);
  }
  DefaultJSONParser parser = new DefaultJSONParser(input, config, featureValues);
  T value = (T) parser.parseObject(clazz);
  handleResovleTask(parser, value);
  parser.close();
  return (T) value;
}

代码示例来源:origin: AlibabaTech/fastjson

@SuppressWarnings("rawtypes")
public Map parseMap(DefaultJSONParser parser, Map<String, Object> map, Type valueType, Object fieldName) {
  JSONScanner lexer = (JSONScanner) parser.getLexer();
  ParseContext context = parser.getContext();
  try {
    for (;;) {
      lexer.skipWhitespace();
      char ch = lexer.getCurrent();
      if (parser.isEnabled(Feature.AllowArbitraryCommas)) {
        while (ch == ',') {
          lexer.incrementBufferPosition();
        key = lexer.scanSymbol(parser.getSymbolTable(), '"');
        lexer.skipWhitespace();
        ch = lexer.getCurrent();
        return map;
      } else if (ch == '\'') {
        if (!parser.isEnabled(Feature.AllowSingleQuotes)) {
          throw new JSONException("syntax error");
        key = lexer.scanSymbol(parser.getSymbolTable(), '\'');
        lexer.skipWhitespace();
        ch = lexer.getCurrent();
        if (!parser.isEnabled(Feature.AllowUnQuotedFieldNames)) {
          throw new JSONException("syntax error");
        key = lexer.scanSymbolUnQuoted(parser.getSymbolTable());

代码示例来源:origin: alibaba/fastjson

public static Object[] parseInvocationArguments(String json, MethodLocator methodLocator) {
  DefaultJSONParser parser = new DefaultJSONParser(json);
  JSONLexerBase lexer = (JSONLexerBase) parser.getLexer();
  ParseContext rootContext = parser.setContext(null, null);
        ParseContext context = parser.setContext(rootContext, null, "argsObjs");
        values = parser.parseArray(argTypes);
        context.object = values;
        parser.accept(JSONToken.RBRACE);
        parser.handleResovleTask(null);
      } else {
        values = null;
      parser.close();
        String typeName = typeNames[i];
        if (argType != String.class) {
          values[i] = TypeUtils.cast(typeName, argType, parser.getConfig());
        } else {
          values[i] = typeName;
    values = parser.parseArray(argTypes);
    lexer.close();
  } else {

代码示例来源:origin: com.alibaba/fastjson

@SuppressWarnings("unchecked")
public static <T> T parseObject(String input, Type clazz, int featureValues, Feature... features) {
  if (input == null) {
    return null;
  }
  for (Feature feature : features) {
    featureValues = Feature.config(featureValues, feature, true);
  }
  DefaultJSONParser parser = new DefaultJSONParser(input, ParserConfig.getGlobalInstance(), featureValues);
  T value = (T) parser.parseObject(clazz);
  parser.handleResovleTask(value);
  parser.close();
  return (T) value;
}

代码示例来源:origin: alibaba/fastjson

parser.accept(JSONToken.LBRACE);
      parser.accept(JSONToken.COLON);
      address = parser.parseObject(InetAddress.class);
    } else if (key.equals("port")) {
      parser.accept(JSONToken.COLON);
      if (lexer.token() != JSONToken.LITERAL_INT) {
        throw new JSONException("port is not int");
      lexer.nextToken();
    } else {
      parser.accept(JSONToken.COLON);
      parser.parse();
  parser.accept(JSONToken.RBRACE);
  parser.accept(JSONToken.COMMA);
  parser.accept(JSONToken.COLON);
  objVal = parser.parse();
  parser.accept(JSONToken.RBRACE);
} else {
  objVal = parser.parse();
  return (T) TypeUtils.loadClass(strVal, parser.getConfig().getDefaultClassLoader(), false);

代码示例来源:origin: com.alibaba/fastjson

parser.parseArray(array, fieldName);
ParseContext context = parser.getContext();
try {
  for (int i = 0;;++i) {
      key = lexer.scanSymbol(parser.getSymbolTable(), '"');
      lexer.skipWhitespace();
      ch = lexer.getCurrent();
      key = lexer.scanSymbol(parser.getSymbolTable(), '\'');
      lexer.skipWhitespace();
      ch = lexer.getCurrent();
      key = lexer.scanSymbolUnQuoted(parser.getSymbolTable());
      lexer.skipWhitespace();
      ch = lexer.getCurrent();
      String typeName = lexer.scanSymbol(parser.getSymbolTable(), '"');
      final ParserConfig config = parser.getConfig();
      parser.setResolveStatus(DefaultJSONParser.TypeNameRedirect);
        parser.popContext();
      parser.setContext(context);
      lexer.nextToken();
    } else {

代码示例来源:origin: com.alibaba/fastjson

if (parser.getResolveStatus() == DefaultJSONParser.TypeNameRedirect) {
  parser.setResolveStatus(DefaultJSONParser.NONE);
} else {
  if (lexer.token() != JSONToken.LBRACE) {
  String key = lexer.scanSymbol(parser.getSymbolTable());
    if (lexer.token() == JSONToken.LITERAL_STRING) {
      String exClassName = lexer.stringVal();
      exClass = parser.getConfig().checkAutoType(exClassName, Throwable.class, lexer.getFeatures());
    } else {
      throw new JSONException("syntax error");
    cause = deserialze(parser, null, "cause");
  } else if ("stackTrace".equals(key)) {
    stackTrace = parser.parseObject(StackTraceElement[].class);
  } else {
    if (otherValues == null) {
      otherValues = new HashMap<String, Object>();
    otherValues.put(key, parser.parse());
      exBeanDeser = this;
    } else {
      ObjectDeserializer exDeser = parser.getConfig().getDeserializer(exClass);
      if (exDeser instanceof JavaBeanDeserializer) {
        exBeanDeser = (JavaBeanDeserializer) exDeser;

代码示例来源:origin: alibaba/fastjson

if (token == JSONToken.LBRACE) {
  JSONObject jsonObject = new JSONObject(true);
  parser.parseObject(jsonObject);
  longObject = TypeUtils.castToLong(jsonObject);
} else {
  Object value = parser.parse();

代码示例来源:origin: com.alibaba/fastjson

public static List<Object> parseArray(String text, Type[] types) {
  if (text == null) {
    return null;
  }
  List<Object> list;
  DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
  Object[] objectArray = parser.parseArray(types);
  if (objectArray == null) {
    list = null;
  } else {
    list = Arrays.asList(objectArray);
  }
  parser.handleResovleTask(list);
  parser.close();
  return list;
}

代码示例来源:origin: alibaba/fastjson

public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  JSONLexerBase lexer = (JSONLexerBase) parser.getLexer();
  SymbolTable symbolTable = parser.getSymbolTable();
    String name = lexer.scanSymbolUnQuoted(parser.getSymbolTable());
    funcName += ".";
    funcName += name;
    Object arg = parser.parse();
    jsonp.addParameter(arg);

代码示例来源:origin: AlibabaTech/fastjson

public static final Object parse(String text, int features) {
  if (text == null) {
    return null;
  }
  DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance(), features);
  Object value = parser.parse();
  handleResovleTask(parser, value);
  parser.close();
  return value;
}

相关文章