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

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

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

DefaultJSONParser.setContext介绍

暂无

代码示例

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

public ParseContext setContext(Object object, Object fieldName) {
  if (lexer.isEnabled(Feature.DisableCircularReferenceDetect)) {
    return null;
  }
  return setContext(this.context, object, fieldName);
}

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

@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

@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: alibaba/fastjson

ParseContext rootContext = parser.setContext(null, null);
      lexer.nextToken();
      ParseContext context = parser.setContext(rootContext, null, "argsObjs");
      values = parser.parseArray(argTypes);
      context.object = values;

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

ParseContext rootContext = parser.setContext(null, null);
      lexer.nextToken();
      ParseContext context = parser.setContext(rootContext, null, "argsObjs");
      values = parser.parseArray(argTypes);
      context.object = values;

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

this.setContext(array, fieldName);
try {
  for (int i = 0;; ++i) {
  this.setContext(context);

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

parser.setContext(context, object, fieldName);
      fieldValues = new HashMap<String, Object>(this.fieldDeserializers.length);
    childContext = parser.setContext(context, object, fieldName);
    if (setFlags == null) {
      setFlags = new int[(this.fieldDeserializers.length / 32) + 1];
    object = createInstance(parser, type);
    if (childContext == null) {
      childContext = parser.setContext(context, object, fieldName);
  childContext.object = object;
parser.setContext(context);

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

context = this.context;
      } else {
        ParseContext contextR = setContext(object, fieldName);
        if (context == null) {
          context = contextR;
      context = this.context;
    } else {
      ParseContext contextR = setContext(object, fieldName);
      if (context == null) {
        context = contextR;
      this.setContext(context);
      ctxLocal = setContext(context, input, key);
      setContext(obj, key);
      setContext(context);
      return object;
    } else if (lexer.token() == JSONToken.COMMA) {
        this.popContext();
      } else {
        this.setContext(context);
    this.setContext(value, key);
this.setContext(context);

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

this.setContext(array, fieldName);
try {
  for (int i = 0;; ++i) {
  this.setContext(context);

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

parser.setContext(context);
  parser.checkMapResolve(map, key);
  parser.setContext(context, value, key);
  parser.setContext(context);
parser.setContext(context);

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

parser.setContext(context);

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

setContext(context);
  setContext(context, value, key);
  setContext(context);
setContext(context);

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

public ParseContext setContext(Object object, Object fieldName) {
  if (isEnabled(Feature.DisableCircularReferenceDetect)) {
    return null;
  }
  return setContext(this.context, object, fieldName);
}

代码示例来源: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: 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);
  }
}

相关文章