本文整理了Java中com.alibaba.fastjson.parser.DefaultJSONParser
类的一些代码示例,展示了DefaultJSONParser
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。DefaultJSONParser
类的具体详情如下:
包路径:com.alibaba.fastjson.parser.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;
}
内容来源于网络,如有侵权,请联系作者删除!