Commit 7b52ef72 by 陶光胜

观云台小程序

parent 62028fd4
package com.gic.cloud.web.utils;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
@Component
public class BigDecimalConvertUtils {
@Bean
public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter1(){
MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
/**
* 序列换成json时,BigDecimal
* 因为js中得数字类型不能包含所有的java BigDecimal
*/
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(BigDecimal.class, new BigDecimalJsonSeralizer());
simpleModule.addSerializer(String.class, new StringJsonSeralizer());
//simpleModule.addSerializer(String.class, new StringJsonSeralizer());
objectMapper.registerModule(simpleModule);
jackson2HttpMessageConverter.setObjectMapper(objectMapper);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return jackson2HttpMessageConverter;
}
}
package com.gic.cloud.web.utils;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.math.BigDecimal;
public class BigDecimalJsonSeralizer extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
if(value != null){
BigDecimal result = value.setScale(2, BigDecimal.ROUND_HALF_UP);
jsonGenerator.writeString(result.toString());
}else {
jsonGenerator.writeString("--");
}
}
}
package com.gic.cloud.web.utils;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringJsonSeralizer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
if(StringUtils.isNotBlank(value)){
Pattern pattern = Pattern.compile("\\d+\\.\\d+$|-\\d+\\.\\d+$");
Matcher isNum = pattern.matcher(value);
if(isNum.matches()){
BigDecimal decimal = new BigDecimal(value).setScale(2, BigDecimal.ROUND_HALF_UP);
jsonGenerator.writeString(decimal.toString());
return;
}
}
jsonGenerator.writeString(value);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment