本文整理汇总了Java中com.alibaba.fastjson.parser.JSONToken类的典型用法代码示例。如果您正苦于以下问题:Java JSONToken类的具体用法?Java JSONToken怎么用?Java JSONToken使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
JSONToken类属于com.alibaba.fastjson.parser包,在下文中一共展示了JSONToken类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parseField
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
@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);
}
}
示例2: test_0
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public void test_0 () throws Exception {
new JSONToken();
Assert.assertEquals("int", JSONToken.name(JSONToken.LITERAL_INT));
Assert.assertEquals("float", JSONToken.name(JSONToken.LITERAL_FLOAT));
Assert.assertEquals("string", JSONToken.name(JSONToken.LITERAL_STRING));
Assert.assertEquals("iso8601", JSONToken.name(JSONToken.LITERAL_ISO8601_DATE));
Assert.assertEquals("true", JSONToken.name(JSONToken.TRUE));
Assert.assertEquals("false", JSONToken.name(JSONToken.FALSE));
Assert.assertEquals("null", JSONToken.name(JSONToken.NULL));
Assert.assertEquals("new", JSONToken.name(JSONToken.NEW));
Assert.assertEquals("(", JSONToken.name(JSONToken.LPAREN));
Assert.assertEquals(")", JSONToken.name(JSONToken.RPAREN));
Assert.assertEquals("{", JSONToken.name(JSONToken.LBRACE));
Assert.assertEquals("}", JSONToken.name(JSONToken.RBRACE));
Assert.assertEquals("[", JSONToken.name(JSONToken.LBRACKET));
Assert.assertEquals("]", JSONToken.name(JSONToken.RBRACKET));
Assert.assertEquals(",", JSONToken.name(JSONToken.COMMA));
Assert.assertEquals(":", JSONToken.name(JSONToken.COLON));
Assert.assertEquals("ident", JSONToken.name(JSONToken.IDENTIFIER));
Assert.assertEquals("fieldName", JSONToken.name(JSONToken.FIELD_NAME));
Assert.assertEquals("EOF", JSONToken.name(JSONToken.EOF));
Assert.assertEquals("Unknown", JSONToken.name(Integer.MAX_VALUE));
Assert.assertEquals("Set", JSONToken.name(JSONToken.SET));
Assert.assertEquals("TreeSet", JSONToken.name(JSONToken.TREE_SET));
}
示例3: deserialze
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static <T> T deserialze(DefaultJSONParser parser) {
final JSONLexer lexer = parser.getLexer();
if (lexer.token() == JSONToken.LITERAL_INT) {
String val = lexer.numberString();
lexer.nextToken(JSONToken.COMMA);
return (T) new BigInteger(val);
}
Object value = parser.parse();
if (value == null) {
return null;
}
return (T) TypeUtils.castToBigInteger(value);
}
示例4: hasNext
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public boolean hasNext() {
if (context == null) {
throw new JSONException("context is null");
}
final int token = parser.lexer.token();
final int state = context.state;
switch (state) {
case StartArray:
case ArrayValue:
return token != JSONToken.RBRACKET;
case StartObject:
case PropertyValue:
return token != JSONToken.RBRACE;
default:
throw new JSONException("illegal state : " + state);
}
}
示例5: readString
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public String readString() {
Object object;
if (context == null) {
object = parser.parse();
} else {
readBefore();
JSONLexer lexer = parser.lexer;
if (context.state == JSONStreamContext.StartObject && lexer.token() == JSONToken.IDENTIFIER) {
object = lexer.stringVal();
lexer.nextToken();
} else {
object = parser.parse();
}
readAfter();
}
return TypeUtils.castToString(object);
}
示例6: deserialze
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
@SuppressWarnings({ "unchecked", "rawtypes" })
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
if (parser.lexer.token() == JSONToken.NULL) {
parser.lexer.nextToken(JSONToken.COMMA);
return null;
}
if (type == JSONArray.class) {
JSONArray array = new JSONArray();
parser.parseArray(array);
return (T) array;
}
Collection list = TypeUtils.createCollection(type);
Type itemType = TypeUtils.getCollectionItemType(type);
parser.parseArray(itemType, list, fieldName);
return (T) list;
}
示例7: parseArray
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public static JSONArray parseArray(String text) {
if (text == null) {
return null;
}
DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
JSONArray array;
JSONLexer lexer = parser.lexer;
if (lexer.token() == JSONToken.NULL) {
lexer.nextToken();
array = null;
} else if (lexer.token() == JSONToken.EOF) {
array = null;
} else {
array = new JSONArray();
parser.parseArray(array);
parser.handleResovleTask(array);
}
parser.close();
return array;
}
示例8: parseArray
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public static final JSONArray parseArray(String text) {
if (text == null) {
return null;
}
DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
JSONArray array;
JSONLexer lexer = parser.getLexer();
if (lexer.token() == JSONToken.NULL) {
lexer.nextToken();
array = null;
} else if (lexer.token() == JSONToken.EOF) {
array = null;
} else {
array = new JSONArray();
parser.parseArray(array);
parser.handleResovleTask(array);
}
parser.close();
return array;
}
示例9: test_boolean
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public void test_boolean() throws Exception {
Assert.assertEquals(Boolean.TRUE, JSON.parseObject("true", Boolean.class));
Assert.assertEquals(Boolean.FALSE, JSON.parseObject("false", Boolean.class));
Assert.assertEquals(Boolean.TRUE, JSON.parseObject("'true'", Boolean.class));
Assert.assertEquals(Boolean.FALSE, JSON.parseObject("'false'", Boolean.class));
Assert.assertEquals(Boolean.TRUE, JSON.parseObject("1", Boolean.class));
Assert.assertEquals(Boolean.FALSE, JSON.parseObject("0", Boolean.class));
Assert.assertEquals(null, JSON.parseObject("null", Boolean.class));
{
DefaultJSONParser parser = new DefaultJSONParser("null", ParserConfig.getGlobalInstance(),
JSON.DEFAULT_PARSER_FEATURE);
Assert.assertEquals(null, BooleanCodec.instance.deserialze(parser, null, null));
parser.close();
}
Assert.assertEquals(JSONToken.TRUE, BooleanCodec.instance.getFastMatchToken());
}
示例10: deserialze
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public <T> T deserialze(DefaultJSONParser parser, Type clazz, Object fieldName) {
final JSONLexer lexer = parser.getLexer();
Long longObject;
if (lexer.token() == JSONToken.LITERAL_INT) {
long longValue = lexer.longValue();
lexer.nextToken(JSONToken.COMMA);
longObject = Long.valueOf(longValue);
} else {
Object value = parser.parse();
if (value == null) {
return null;
}
longObject = TypeUtils.castToLong(value);
}
if (clazz == AtomicLong.class) {
return (T) new AtomicLong(longObject.longValue());
}
return (T) longObject;
}
示例11: deserialze
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
JSONLexer lexer = parser.getLexer();
if (lexer.token() == JSONToken.LITERAL_STRING) {
String text = lexer.stringVal();
lexer.nextToken();
if (type == LocalDateTime.class) {
return (T) LocalDateTime.parse(text);
} else if (type == LocalDate.class) {
return (T) LocalDate.parse(text);
} else if (type == LocalTime.class) {
return (T) LocalTime.parse(text);
} else if (type == Period.class) {
return (T) Period.parse(text);
} else if (type == Duration.class) {
return (T) Duration.parse(text);
} else if (type == Instant.class) {
return (T) Instant.parse(text);
}
} else {
throw new UnsupportedOperationException();
}
return null;
}
示例12: getFastMatchToken
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public int getFastMatchToken() {
if (fieldValueDeserilizer != null) {
return fieldValueDeserilizer.getFastMatchToken();
}
return JSONToken.LITERAL_INT;
}
示例13: parseArray
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
@SuppressWarnings({ "unchecked", "rawtypes" })
public final void parseArray(DefaultJSONParser parser, Type objectType, Collection array) {
Type itemType = this.itemType;
ObjectDeserializer itemTypeDeser = this.deserializer;
if (itemType instanceof TypeVariable //
&& objectType instanceof ParameterizedType) {
TypeVariable typeVar = (TypeVariable) itemType;
ParameterizedType paramType = (ParameterizedType) objectType;
Class<?> objectClass = null;
if (paramType.getRawType() instanceof Class) {
objectClass = (Class<?>) paramType.getRawType();
}
int paramIndex = -1;
if (objectClass != null) {
for (int i = 0, size = objectClass.getTypeParameters().length; i < size; ++i) {
TypeVariable item = objectClass.getTypeParameters()[i];
if (item.getName().equals(typeVar.getName())) {
paramIndex = i;
break;
}
}
}
if (paramIndex != -1) {
itemType = paramType.getActualTypeArguments()[paramIndex];
if (!itemType.equals(this.itemType)) {
itemTypeDeser = parser.getConfig().getDeserializer(itemType);
}
}
}
final JSONLexer lexer = parser.getLexer();
if (lexer.token() != JSONToken.LBRACKET) {
String errorMessage = "exepct '[', but " + JSONToken.name(lexer.token());
if (objectType != null) {
errorMessage += ", type : " + objectType;
}
throw new JSONException(errorMessage);
}
if (itemTypeDeser == null) {
itemTypeDeser = deserializer = parser.getConfig().getDeserializer(itemType);
itemFastMatchToken = deserializer.getFastMatchToken();
}
lexer.nextToken(itemFastMatchToken);
for (int i = 0;; ++i) {
if (lexer.isEnabled(Feature.AllowArbitraryCommas)) {
while (lexer.token() == JSONToken.COMMA) {
lexer.nextToken();
continue;
}
}
if (lexer.token() == JSONToken.RBRACKET) {
break;
}
Object val = itemTypeDeser.deserialze(parser, itemType, i);
array.add(val);
parser.checkListResolve(array);
if (lexer.token() == JSONToken.COMMA) {
lexer.nextToken(itemFastMatchToken);
continue;
}
}
lexer.nextToken(JSONToken.COMMA);
}
示例14: startArray
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public void startArray() {
if (context == null) {
context = new JSONStreamContext(null, StartArray);
} else {
startStructure();
context = new JSONStreamContext(context, StartArray);
}
this.parser.accept(JSONToken.LBRACKET);
}
示例15: deserialze
import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static <T> T deserialze(DefaultJSONParser parser) {
final JSONLexer lexer = parser.lexer;
if (lexer.token() == JSONToken.LITERAL_INT) {
String val = lexer.numberString();
lexer.nextToken(JSONToken.COMMA);
return (T) new BigInteger(val);
}
Object value = parser.parse();
return value == null //
? null //
: (T) TypeUtils.castToBigInteger(value);
}