java 递归将json中小数保留指定位数小数

public static void keepSpecifiedDecimalScales_json(com.alibaba.fastjson.JSONObject json,int scales){
		if( json == null || json.size() == 0 ){
			return;
		}
		Set<String> keys = json.keySet();
		for( String key:keys ){
			Object value = json.get(key);
			if( value == null ){
				continue;
			}
			if( value instanceof String ){
				System.out.println(key + " 的对应值的类型为 字符串" );
				continue;
			}
			if( value instanceof com.alibaba.fastjson.JSONObject){
				keepSpecifiedDecimalScales_json((com.alibaba.fastjson.JSONObject) value,scales );
			}else if( value instanceof com.alibaba.fastjson.JSONArray){
				keepSpecifiedDecimalScales_jsonArray((com.alibaba.fastjson.JSONArray) value,scales );
			}else if( value instanceof BigDecimal){
				System.out.println(key + " 的对应值的类型为 小数" );
				// 转成整数
				BigDecimal value_bigDecimal = (BigDecimal) value;
				double value_double = value_bigDecimal.setScale( scales, RoundingMode.HALF_UP ).doubleValue();
				json.put( key,value_double );
			}else {
				System.out.println(key + " 的对应值的类型为 " + value.getClass().getName() );
			}
		}
	}
public static void keepSpecifiedDecimalScales_jsonArray(com.alibaba.fastjson.JSONArray array,int scales){
		if( array == null || array.size() == 0 ){
			return;
		}
		int size = array.size();
		for( int i=0;i<size;i++ ){
			Object value = array.get(i);
			if( value == null ){
				continue;
			}
			if( value instanceof String ){
				System.out.println(value + " 的类型为 字符串" );
				continue;
			}
			if( value instanceof com.alibaba.fastjson.JSONObject){
				keepSpecifiedDecimalScales_json((com.alibaba.fastjson.JSONObject) value,scales );
			}else if( value instanceof com.alibaba.fastjson.JSONArray){
				keepSpecifiedDecimalScales_jsonArray((com.alibaba.fastjson.JSONArray) value,scales );
			}else if( value instanceof BigDecimal){
				System.out.println(value + " 的对应值的类型为 小数" );
				// 转成整数
				BigDecimal value_bigDecimal = (BigDecimal) value;
				double value_double = value_bigDecimal.setScale( scales, RoundingMode.HALF_UP ).doubleValue();
				array.set( i,value_double );
			}else {
				System.out.println(value + " 的类型为 " + value.getClass().getName() );
			}
		}
	}
public static String keepSpecifiedDecimalScales_jsonString( String jsonString,int scales){
		if( jsonString == null ){
			return null;
		}
		jsonString = jsonString.trim();
		if( jsonString.length() == 0 ){
			return "";
		}
		String char1 = jsonString.substring(0, 1);
		if( char1.equals( "{" ) ){
			com.alibaba.fastjson.JSONObject json = com.alibaba.fastjson.JSONObject.parseObject(jsonString);
			keepSpecifiedDecimalScales_json( json,scales );
			return json.toJSONString();
		}else if( char1.equals( "[" ) ){
			com.alibaba.fastjson.JSONArray array = com.alibaba.fastjson.JSONArray.parseArray(jsonString);
			keepSpecifiedDecimalScales_jsonArray( array,scales );
			return array.toJSONString();
		}else {
			return jsonString;
		}
	}

猜你喜欢

转载自blog.csdn.net/heshiyuan1406146854/article/details/129553347