类com.fasterxml.jackson.core.JsonParser.NumberType源码实例Demo

下面列出了怎么用com.fasterxml.jackson.core.JsonParser.NumberType的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: jackson-jr   文件: ReadTreeSequencesTest.java
private void _verifyTreeSequence(ValueIterator<JrsValue> it) throws Exception
{
    assertTrue(it.hasNext());
    JrsValue tree = it.nextValue();
    assertTrue(tree.isObject());
    assertEquals(2, tree.size());
    assertEquals(NumberType.INT, tree.path("id").numberType());
    assertEquals("foo", tree.path("msg").asText());

    assertTrue(it.hasNext());
    tree = it.nextValue();
    assertTrue(tree.isArray());
    assertEquals(3, tree.size());
    assertTrue(tree.get(0).isNumber());
    assertTrue(tree.get(1).isNumber());
    assertEquals(NumberType.INT, tree.get(2).numberType());

    assertTrue(it.hasNext());
    tree = it.nextValue();
    assertTrue(tree.isNull());

    assertFalse(it.hasNext());
}
 
源代码2 项目: lams   文件: StdSerializer.java
/**
 * Helper method that calls necessary visit method(s) to indicate that the
 * underlying JSON type is JSON Integer number.
 *
 * @since 2.7
 */
protected void visitIntFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint,
        NumberType numberType)
    throws JsonMappingException
{
    JsonIntegerFormatVisitor v2 = visitor.expectIntegerFormat(typeHint);
    if (_neitherNull(v2, numberType)) {
        v2.numberType(numberType);
    }
}
 
源代码3 项目: lams   文件: StdSerializer.java
/**
 * Helper method that calls necessary visit method(s) to indicate that the
 * underlying JSON type is JSON Integer number, but that there is also a further
 * format restriction involved.
 *
 * @since 2.7
 */
protected void visitIntFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint,
        NumberType numberType, JsonValueFormat format)
    throws JsonMappingException
{
    JsonIntegerFormatVisitor v2 = visitor.expectIntegerFormat(typeHint);
    if (v2 != null) {
        if (numberType != null) {
            v2.numberType(numberType);
        }
        if (format != null) {
            v2.format(format);
        }
    }
}
 
源代码4 项目: lams   文件: StdSerializer.java
/**
 * Helper method that calls necessary visit method(s) to indicate that the
 * underlying JSON type is a floating-point JSON number.
 *
 * @since 2.7
 */
protected void visitFloatFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint,
        NumberType numberType)
    throws JsonMappingException
{
    JsonNumberFormatVisitor v2 = visitor.expectNumberFormat(typeHint);
    if (v2 != null) {
        v2.numberType(numberType);
    }
}
 
protected final boolean _deserializeBooleanFromOther(JsonParser p, DeserializationContext ctxt)
    throws IOException
{
    if (p.getNumberType() == NumberType.LONG) {
        return (p.getLongValue() == 0L) ? Boolean.FALSE : Boolean.TRUE;
    }
    // no really good logic; let's actually resort to textual comparison
    String str = p.getText();
    if ("0.0".equals(str) || "0".equals(str)) {
        return Boolean.FALSE;
    }
    return Boolean.TRUE;
}
 
源代码6 项目: openbd-core   文件: DeserializeJSONJackson.java
private cfData	parseArray(JsonParser jp, cfArrayData array, boolean bStrictMapping ) throws JsonParseException, IOException, cfmRunTimeException{
	
	JsonToken	token	= jp.nextToken();
	while ( token != JsonToken.END_ARRAY ){
		
		if ( token == JsonToken.START_ARRAY ){
			array.addElement( parseArray(jp,cfArrayData.createArray(1),bStrictMapping ) );
		}else if ( token == JsonToken.START_OBJECT ){
			array.addElement( parseObject(jp,new cfStructData(),bStrictMapping) );
		}else if ( token == JsonToken.VALUE_NUMBER_INT ){
			
			if ( jp.getNumberType() == NumberType.INT )
				array.addElement( new cfNumberData(jp.getIntValue()) );
			else if ( jp.getNumberType() == NumberType.LONG || jp.getNumberType() == NumberType.BIG_INTEGER )
				array.addElement( new cfNumberData(jp.getLongValue()) );

		}else if ( token == JsonToken.VALUE_NUMBER_FLOAT ){
	
			if ( jp.getNumberType() == NumberType.FLOAT )
				array.addElement( new cfNumberData(jp.getFloatValue()) );
			else if ( jp.getNumberType() == NumberType.DOUBLE )
				array.addElement( new cfNumberData(jp.getDoubleValue()) );

		} else if ( token == JsonToken.VALUE_FALSE ){
			array.addElement( cfBooleanData.FALSE );
		} else if ( token == JsonToken.VALUE_TRUE ){
			array.addElement( cfBooleanData.TRUE );
		} else if ( token == JsonToken.VALUE_NULL ){
			array.addElement( cfNullData.NULL );
		}else
			array.addElement(  getString(jp.getText()) );
	
		token	= jp.nextToken();
	}
	
	return array;
}
 
源代码7 项目: lams   文件: BooleanSerializer.java
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException {
    // 27-Mar-2017, tatu: As usual, bit tricky but... seems like we should call
    //    visitor for actual representation
    visitIntFormat(visitor, typeHint, NumberType.INT);
}
 
protected final boolean _deserializeBoolean(JsonParser p, DeserializationContext ctxt) throws IOException
{
    JsonToken t = p.currentToken();
    if (t == JsonToken.VALUE_TRUE) return true;
    if (t == JsonToken.VALUE_FALSE) return false;
    if (t == JsonToken.VALUE_NULL) {
        if (ctxt.isEnabled(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES)) {
            _failNullToPrimitiveCoercion(ctxt, "boolean");
        }
        return false;
    }

    if (t == JsonToken.VALUE_NUMBER_INT) {
        _verifyScalarCoercion(ctxt, p, "boolean");
        // 11-Jan-2012, tatus: May be outside of int...
        if (p.getNumberType() == NumberType.INT) {
            return (p.getIntValue() != 0);
        }
        return _deserializeBooleanFromOther(p, ctxt);
    }
    // And finally, let's allow Strings to be converted too
    if (t == JsonToken.VALUE_STRING) {
        _verifyScalarCoercion(ctxt, p, "boolean");
        String text = p.getText().trim();
        if ("true".equals(text) || "True".equals(text)) {
            return true;
        }
        if ("false".equals(text) || "False".equals(text) || text.length() == 0) {
            return false;
        }
        if (_hasTextualNull(text)) {
            return false;
        }
        throw ctxt.weirdStringException(text, Boolean.TYPE, "only \"true\" or \"false\" recognized");
    }
    // [databind#381]
    if (t == JsonToken.START_ARRAY && ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) {
        p.nextToken();
        final boolean parsed = _deserializeBooleanFromOther(p, ctxt);
        t = p.nextToken();
        if (t != JsonToken.END_ARRAY) {
            _handleMissingEndArrayForSingle(p, ctxt);
        }            
        return parsed;            
    }
    // Otherwise, no can do:
    return (Boolean) ctxt.handleUnexpectedToken(getType(), p);
}
 
源代码9 项目: openbd-core   文件: DeserializeJSONJackson.java
private cfData	parseObject(JsonParser jp, cfStructData struct, boolean bStrictMapping ) throws JsonParseException, IOException, cfmRunTimeException{
	
	JsonToken	token	= jp.nextToken();
	while ( token != JsonToken.END_OBJECT ){
		String namefield = jp.getCurrentName();
		
		if ( token == JsonToken.START_ARRAY ){
			struct.setData( namefield, parseArray(jp, cfArrayData.createArray(1), bStrictMapping) );
		}else if ( token == JsonToken.START_OBJECT ){
			struct.setData( namefield, parseObject(jp,new cfStructData(), bStrictMapping) );
		}else if ( token == JsonToken.VALUE_NUMBER_INT ){

			if ( jp.getNumberType() == NumberType.INT )
				struct.setData( namefield, new cfNumberData(jp.getIntValue()) );
			else if ( jp.getNumberType() == NumberType.LONG || jp.getNumberType() == NumberType.BIG_INTEGER )
				struct.setData( namefield, new cfNumberData(jp.getLongValue()) );

		}else if ( token == JsonToken.VALUE_NUMBER_FLOAT ){

			if ( jp.getNumberType() == NumberType.FLOAT )
				struct.setData( namefield, new cfNumberData(jp.getFloatValue()) );
			else if ( jp.getNumberType() == NumberType.DOUBLE )
				struct.setData( namefield, new cfNumberData(jp.getDoubleValue()) );

		} else if ( token == JsonToken.VALUE_FALSE ){
			struct.setData( namefield, cfBooleanData.FALSE );
		} else if ( token == JsonToken.VALUE_TRUE ){
			struct.setData( namefield, cfBooleanData.TRUE );
		} else if ( token == JsonToken.VALUE_NULL ){
			struct.setData( namefield, cfNullData.NULL );
		}else{
			struct.setData( namefield, getString(jp.getText()) );
		}

		token	= jp.nextToken();
	}

	if ( bStrictMapping )
		return convertToQuery( struct );
	else
		return struct;
}
 
源代码10 项目: jackson-jr   文件: TreeApiTest.java
@Override
public NumberType numberType() {
    return null;
}
 
 类方法
 同包方法