当前位置: 首页>>代码示例>>Java>>正文


Java JSONToken类代码示例

本文整理汇总了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);
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:26,代码来源:ArrayListTypeFieldDeserializer.java

示例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));
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:27,代码来源:JSONTokenTest.java

示例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);
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:18,代码来源:BigIntegerCodec.java

示例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);
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:19,代码来源:JSONReader.java

示例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);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:19,代码来源:JSONReader.java

示例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;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:21,代码来源:CollectionCodec.java

示例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;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:27,代码来源:JSON.java

示例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;
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:27,代码来源:JSON.java

示例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());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:21,代码来源:BooleanDeserializerTest.java

示例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;
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:27,代码来源:LongCodec.java

示例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;
}
 
开发者ID:okingjerryo,项目名称:WeiMusicCommunity-server,代码行数:24,代码来源:JodaTimeDeserializer.java

示例12: getFastMatchToken

import com.alibaba.fastjson.parser.JSONToken; //导入依赖的package包/类
public int getFastMatchToken() {
    if (fieldValueDeserilizer != null) {
        return fieldValueDeserilizer.getFastMatchToken();
    }

    return JSONToken.LITERAL_INT;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:8,代码来源:DefaultFieldDeserializer.java

示例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);
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:77,代码来源:ArrayListTypeFieldDeserializer.java

示例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);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:11,代码来源:JSONReader.java

示例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);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:15,代码来源:BigIntegerCodec.java


注:本文中的com.alibaba.fastjson.parser.JSONToken类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。