com.alibaba.fastjson.parser.JSONToken#LBRACKET源码实例Demo

下面列出了com.alibaba.fastjson.parser.JSONToken#LBRACKET 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: joyrpc   文件: AbstractSerializer.java
/**
 * 读取字符串数组
 *
 * @param parser 解析器
 * @param lexer  文法
 * @param field  字段
 */
protected String[] parseStrings(final DefaultJSONParser parser, final JSONLexer lexer, final String field) {
    String result[] = null;
    switch (lexer.token()) {
        case JSONToken.LBRACKET:
            result = parser.parseObject(String[].class);
            break;
        case JSONToken.NULL:
            lexer.nextToken();
            break;
        default:
            throw new SerializerException("syntax error: invalid " + field);
    }
    return result;
}
 
源代码2 项目: uavstack   文件: ASMDeserializerFactory.java
private void _quickNextToken(Context context, MethodVisitor mw, int token) {
    Label quickElse_ = new Label(), quickEnd_ = new Label();
    mw.visitVarInsn(ALOAD, context.var("lexer"));
    mw.visitMethodInsn(INVOKEVIRTUAL, JSONLexerBase, "getCurrent", "()C");
    if (token == JSONToken.LBRACE) {
        mw.visitVarInsn(BIPUSH, '{');
    } else if (token == JSONToken.LBRACKET) {
        mw.visitVarInsn(BIPUSH, '[');
    } else {
        throw new IllegalStateException();
    }

    mw.visitJumpInsn(IF_ICMPNE, quickElse_);

    mw.visitVarInsn(ALOAD, context.var("lexer"));
    mw.visitMethodInsn(INVOKEVIRTUAL, JSONLexerBase, "next", "()C");
    mw.visitInsn(POP);
    mw.visitVarInsn(ALOAD, context.var("lexer"));
    mw.visitLdcInsn(token);
    mw.visitMethodInsn(INVOKEVIRTUAL, JSONLexerBase, "setToken", "(I)V");
    mw.visitJumpInsn(GOTO, quickEnd_);

    mw.visitLabel(quickElse_);
    mw.visitVarInsn(ALOAD, context.var("lexer"));
    mw.visitLdcInsn(token);
    mw.visitMethodInsn(INVOKEVIRTUAL, JSONLexerBase, "nextToken", "(I)V");

    mw.visitLabel(quickEnd_);
}
 
源代码3 项目: java-unified-sdk   文件: ObjectTypeAdapter.java
public int getFastMatchToken() {
  return JSONToken.LBRACKET;
}
 
源代码4 项目: java-unified-sdk   文件: BaseOperationAdapter.java
public int getFastMatchToken() {
  return JSONToken.LBRACKET;
}
 
源代码5 项目: uavstack   文件: ArrayListTypeFieldDeserializer.java
public int getFastMatchToken() {
    return JSONToken.LBRACKET;
}
 
源代码6 项目: uavstack   文件: JavaBeanDeserializer.java
@SuppressWarnings({ "unchecked", "rawtypes" })
    protected static void parseArray(Collection collection, //
                              ObjectDeserializer deser, //
                              DefaultJSONParser parser, //
                              Type type, //
                              Object fieldName) {

        final JSONLexerBase lexer = (JSONLexerBase) parser.lexer;
        int token = lexer.token();
        if (token == JSONToken.NULL) {
            lexer.nextToken(JSONToken.COMMA);
            token = lexer.token();
            return;
        }

        if (token != JSONToken.LBRACKET) {
            parser.throwException(token);
        }
        char ch = lexer.getCurrent();
        if (ch == '[') {
            lexer.next();
            lexer.setToken(JSONToken.LBRACKET);
        } else {
            lexer.nextToken(JSONToken.LBRACKET);
        }
        
        if (lexer.token() == JSONToken.RBRACKET) {
            lexer.nextToken();
            return;
        }

        int index = 0;
        for (;;) {
            Object item = deser.deserialze(parser, type, index);
            collection.add(item);
            index++;
            if (lexer.token() == JSONToken.COMMA) {
                ch = lexer.getCurrent();
                if (ch == '[') {
                    lexer.next();
                    lexer.setToken(JSONToken.LBRACKET);
                } else {
                    lexer.nextToken(JSONToken.LBRACKET);
                }
            } else {
                break;
            }
        }
        
        token = lexer.token();
        if (token != JSONToken.RBRACKET) {
            parser.throwException(token);
        }
        
        ch = lexer.getCurrent();
        if (ch == ',') {
            lexer.next();
            lexer.setToken(JSONToken.COMMA);
        } else {
            lexer.nextToken(JSONToken.COMMA);
        }
//        parser.accept(JSONToken.RBRACKET, JSONToken.COMMA);
    }
 
源代码7 项目: uavstack   文件: ObjectArrayCodec.java
public int getFastMatchToken() {
    return JSONToken.LBRACKET;
}
 
源代码8 项目: uavstack   文件: CollectionCodec.java
public int getFastMatchToken() {
    return JSONToken.LBRACKET;
}
 
源代码9 项目: uavstack   文件: AtomicCodec.java
public int getFastMatchToken() {
    return JSONToken.LBRACKET;
}
 
源代码10 项目: phone   文件: PageDeserializer.java
public int getFastMatchToken() {
    return JSONToken.LBRACKET;
}