com.alibaba.fastjson.parser.DefaultJSONParser.getContext()方法的使用及代码示例

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

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

DefaultJSONParser.getContext介绍

暂无

代码示例

代码示例来源: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: alibaba/fastjson

if (componentType instanceof TypeVariable) {
  TypeVariable typeVar = (TypeVariable) componentType;
  Type objType = parser.getContext().type;
  if (objType instanceof ParameterizedType) {
    ParameterizedType objParamType = (ParameterizedType) objType;

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

ParseContext context = parser.getContext();
if (context == null || context.object == null) {
  throw new JSONException("can't create non-static inner class instance.");

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

@SuppressWarnings("rawtypes")
@Override
public void parseField(DefaultJSONParser parser, Object object, Type objectType, Map<String, Object> fieldValues) {
  JSONLexer lexer = parser.lexer;
  final int token = lexer.token();
  if (token == JSONToken.NULL
      || (token == JSONToken.LITERAL_STRING && lexer.stringVal().length() == 0)) {
    setValue(object, null);
    return;
  }
  ArrayList list = new ArrayList();
  ParseContext context = parser.getContext();
  parser.setContext(context, object, fieldInfo.name);
  parseArray(parser, objectType, list);
  parser.setContext(context);
  if (object == null) {
    fieldValues.put(fieldInfo.name, list);
  } else {
    setValue(object, list);
  }
}

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

if (componentType instanceof TypeVariable) {
  TypeVariable typeVar = (TypeVariable) componentType;
  Type objType = parser.getContext().type;
  if (objType instanceof ParameterizedType) {
    ParameterizedType objParamType = (ParameterizedType) objType;

代码示例来源:origin: com.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

Type fieldType = fieldInfo.fieldType;
if (objectType instanceof ParameterizedType) {
  ParseContext objContext = parser.getContext();
  if (objContext != null) {
    objContext.type = objectType;
  ResolveTask task = parser.getLastResolveTask();
  task.fieldDeserializer = this;
  task.ownerContext = parser.getContext();
  parser.setResolveStatus(DefaultJSONParser.NONE);
} else {

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

@SuppressWarnings("unchecked")
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  if (lexer.token() != JSONToken.LBRACE && lexer.token() != JSONToken.COMMA) {
    throw new JSONException("syntax error");
  }
  lexer.nextToken();
  T obj;
  if (type == Point.class) {
    obj = (T) parsePoint(parser, fieldName);
  } else if (type == Rectangle.class) {
    obj = (T) parseRectangle(parser);
  } else if (type == Color.class) {
    obj = (T) parseColor(parser);
  } else if (type == Font.class) {
    obj = (T) parseFont(parser);
  } else {
    throw new JSONException("not support awt class : " + type);
  }
  ParseContext context = parser.getContext();
  parser.setContext(obj, fieldName);
  parser.setContext(context);
  return obj;
}

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

@SuppressWarnings("unchecked")
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  if (type == JSONObject.class && parser.getFieldTypeResolver() == null) {
    return (T) parser.parseObject();
  }
  
  final JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  Map<Object, Object> map = (lexer.getFeatures() & Feature.OrderedField.mask) != 0
      ? createMap(type, lexer.getFeatures())
      : createMap(type);
  ParseContext context = parser.getContext();
  try {
    parser.setContext(context, map, fieldName);
    return (T) deserialze(parser, type, fieldName, map);
  } finally {
    parser.setContext(context);
  }
}

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

ParseContext context = parser.getContext();
if (object != null && context != null) {
  context = context.parent;

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

@SuppressWarnings("unchecked")
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  if (lexer.token() != JSONToken.LBRACE && lexer.token() != JSONToken.COMMA) {
    throw new JSONException("syntax error");
  }
  lexer.nextToken();
  T obj;
  if (type == Point.class) {
    obj = (T) parsePoint(parser, fieldName);
  } else if (type == Rectangle.class) {
    obj = (T) parseRectangle(parser);
  } else if (type == Color.class) {
    obj = (T) parseColor(parser);
  } else if (type == Font.class) {
    obj = (T) parseFont(parser);
  } else {
    throw new JSONException("not support awt class : " + type);
  }
  ParseContext context = parser.getContext();
  parser.setContext(obj, fieldName);
  parser.setContext(context);
  return obj;
}

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

lexer.nextToken(keyDeserializer.getFastMatchToken());
ParseContext context = parser.getContext();
try {
  for (;;) {

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

ParseContext context = parser.getContext();
try {
  for (int i = 0;;++i) {

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

@SuppressWarnings("rawtypes")
@Override
public void parseField(DefaultJSONParser parser, Object object, Type objectType, Map<String, Object> fieldValues) {
  if (parser.getLexer().token() == JSONToken.NULL) {
    setValue(object, null);
    return;
  }
  ArrayList list = new ArrayList();
  ParseContext context = parser.getContext();
  parser.setContext(context, object, fieldInfo.getName());
  parseArray(parser, objectType, list);
  parser.setContext(context);
  if (object == null) {
    fieldValues.put(fieldInfo.getName(), list);
  } else {
    setValue(object, list);
  }
}

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

public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  final JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  KV map = new KVStore();
  ParseContext context = parser.getContext();
  try {
    parser.setContext(context, map, fieldName);
    return (T) parseMap(parser, map, fieldName);
  } finally {
    parser.setContext(context);
  }
}

代码示例来源:origin: org.actframework/act

public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  final JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  KV map = new KVStore();
  ParseContext context = parser.getContext();
  try {
    parser.setContext(context, map, fieldName);
    return (T) parseMap(parser, map, fieldName);
  } finally {
    parser.setContext(context);
  }
}

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

@Override
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  final JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  EnhancedAdaptiveMap ar = Act.app().getInstance((Class<EnhancedAdaptiveMap>) type);
  ParseContext context = parser.getContext();
  try {
    parser.setContext(context, ar, fieldName);
    return (T) parseActiveBean(parser, ar, fieldName);
  } finally {
    parser.setContext(context);
  }
}

代码示例来源:origin: org.actframework/act

@Override
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  final JSONLexer lexer = parser.lexer;
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  EnhancedAdaptiveMap ar = Act.app().getInstance((Class<EnhancedAdaptiveMap>) type);
  ParseContext context = parser.getContext();
  try {
    parser.setContext(context, ar, fieldName);
    return (T) parseActiveBean(parser, ar, fieldName);
  } finally {
    parser.setContext(context);
  }
}

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

@Override
public void parseField(DefaultJSONParser parser, Object object, Type objectType, Map<String, Object> fieldValues) {
  if (fieldValueDeserilizer == null) {
    fieldValueDeserilizer = parser.getConfig().getDeserializer(fieldInfo);
  }
  Object value = fieldValueDeserilizer.deserialze(parser, getFieldType(), fieldInfo.getName());
  if (parser.getResolveStatus() == DefaultJSONParser.NeedToResolve) {
    ResolveTask task = parser.getLastResolveTask();
    task.setFieldDeserializer(this);
    task.setOwnerContext(parser.getContext());
    parser.setResolveStatus(DefaultJSONParser.NONE);
  } else {
    if (object == null) {
      fieldValues.put(fieldInfo.getName(), value);
    } else {
      setValue(object, value);
    }
  }
}

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

@SuppressWarnings("unchecked")
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
  final JSONLexer lexer = parser.getLexer();
  if (lexer.token() == JSONToken.NULL) {
    lexer.nextToken(JSONToken.COMMA);
    return null;
  }
  Map<Object, Object> map = createMap(type);
  ParseContext context = parser.getContext();
  try {
    parser.setContext(context, map, fieldName);
    if (lexer.token() == JSONToken.RBRACE) {
      lexer.nextToken(JSONToken.COMMA);
      return (T) map;
    }
    return (T) deserialze(parser, type, fieldName, map);
  } finally {
    parser.setContext(context);
  }
}

相关文章