Package com.alibaba.fastjson.parser

Examples of com.alibaba.fastjson.parser.JSONScanner


    private ObjectDeserializer imageDeserializer;
    private final char[] mediaPrefix = "\"media\":".toCharArray();
    private final char[] imagePrefix = "\"images\":".toCharArray();

    public <T> T deserialze(DefaultJSONParser parser, Type clazz, Object fieldName) {
        final JSONScanner lexer = (JSONScanner) parser.getLexer();
       
        MediaContent object = new MediaContent();
       
        lexer.matchField(mediaPrefix);
        if (mediaDeserializer == null) {
            //mediaDeserializer = parser.getMapping().getDeserializer(ObjectDeserializer.class);
        }
        mediaDeserializer.deserialze(parser, clazz, null);
       
        lexer.matchField(imagePrefix);
        imageDeserializer.deserialze(parser, clazz, null);
       
//        if (lexer.token() != JSONToken.RBRACE)
       
        // TODO Auto-generated method stub
View Full Code Here


    private char[] width_  = "\"width\":".toCharArray();
    private char[] height_ = "\"height\":".toCharArray();

    @SuppressWarnings("unchecked")
    public <T> T deserialze(DefaultJSONParser parser, Type clazz, Object fieldName) {
        final JSONScanner lexer = (JSONScanner) parser.getLexer();

        int height;
        Size size;
        String title;
        String uri;
        int width;
       

        int mark = lexer.getBufferPosition();
        char mark_ch = lexer.getCurrent();
        int mark_token = lexer.token();

        {
            height = lexer.scanFieldInt(height_);
            if (lexer.matchStat == JSONScanner.NOT_MATCH) {
                // 退出快速模式, 进入常规模式
                lexer.reset(mark, mark_ch, mark_token);
                return (T) super.deserialze(parser, clazz, fieldName);
            }
        }
        {
            String value = lexer.scanFieldString(size_);
            if (lexer.matchStat == JSONScanner.NOT_MATCH) {
                // 退出快速模式, 进入常规模式
                lexer.reset(mark, mark_ch, mark_token);
                return (T) super.deserialze(parser, clazz, fieldName);
            }
            size = Size.valueOf(value);
        }
        {
            title = lexer.scanFieldString(titile_);
            if (lexer.matchStat == JSONScanner.NOT_MATCH) {
                // 退出快速模式, 进入常规模式
                lexer.reset(mark, mark_ch, mark_token);
                return (T) super.deserialze(parser, clazz, fieldName);
            }
        }
        {
            uri = lexer.scanFieldString(uri_);
            if (lexer.matchStat == JSONScanner.NOT_MATCH) {
                // 退出快速模式, 进入常规模式
                lexer.reset(mark, mark_ch, mark_token);
                return (T) super.deserialze(parser, clazz, fieldName);
            }
        }
        {
            width = lexer.scanFieldInt(width_);
            if (lexer.matchStat == JSONScanner.NOT_MATCH) {
                // 退出快速模式, 进入常规模式
                lexer.reset(mark, mark_ch, mark_token);
                return (T) super.deserialze(parser, clazz, fieldName);
            }
        }


        if (lexer.matchStat != JSONScanner.END) {
            // 退出快速模式, 进入常规模式
            lexer.reset(mark, mark_ch, mark_token);
            return (T) super.deserialze(parser, clazz, fieldName);
        }

        Image image = new Image();
        image.setSize(size);
View Full Code Here

public class JSONScannerTest_symbol extends TestCase {

    public void test_0() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"name\"");
        String symbol = lexer.scanSymbol(symbolTable, '"');
        Assert.assertTrue("name".equals(symbol));

        String symbol2 = lexer.symbol(symbolTable);
        Assert.assertTrue("name".equals(symbol2));
    }
View Full Code Here

    }

    public void test_0_1() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"name\"");
        lexer.scanString();
        String symbol = lexer.symbol(symbolTable);
        Assert.assertTrue("name".equals(symbol));

        Assert.assertTrue("name" != lexer.symbol(null));
    }
View Full Code Here

    }

    public void test_1() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"nick name\"");
        String symbol = lexer.scanSymbol(symbolTable, '"');
        Assert.assertTrue("nick name".equals(symbol));
    }
View Full Code Here

    }

    public void test_2() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"nick \\\"name\"");
        String symbol = lexer.scanSymbol(symbolTable, '"');
        Assert.assertTrue("nick \"name" == symbol);
    }
View Full Code Here

    }

    public void test_2_1() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"nick \\\"name\"");
        lexer.scanString();
        String symbol = lexer.symbol(symbolTable);
        Assert.assertTrue("nick \"name" == symbol);

        Assert.assertTrue("nick \"name" != lexer.symbol(null));
    }
View Full Code Here

    }

    public void test_3() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"nick \\\\name\"");
        String symbol = lexer.scanSymbol(symbolTable, '"');
        Assert.assertTrue("nick \\name" == symbol);
    }
View Full Code Here

    }

    public void test_4() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"nick \\/name\"");
        String symbol = lexer.scanSymbol(symbolTable, '"');
        Assert.assertTrue("nick /name" == symbol);
    }
View Full Code Here

    }

    public void test_5() throws Exception {
        SymbolTable symbolTable = new SymbolTable();

        JSONScanner lexer = new JSONScanner("\"nick \\bname\"");
        String symbol = lexer.scanSymbol(symbolTable, '"');
        Assert.assertTrue("nick \bname" == symbol);
    }
View Full Code Here

TOP

Related Classes of com.alibaba.fastjson.parser.JSONScanner

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.