我曹,握草,窝草,我屮艸芔茻,这么简单的问题也不会######回复
@love青椒炒蛋 : 现在有一种实现方式了,只是感觉不太好,想看看有没有更好的实现方法而已。######
key之间的转换有没有规则,没有规则只能一个有一个set进去######回复
@RunningDream : 加载进内存再好采用Map的形式,不要用list 循环######回复
@RunningDream : 查库也可以,但是你可以把对应关系加载进内存,这样就不用频繁读库了######回复
@赵传喜 : 可以设置规则,现在我的做法是数据库中配置key设置关系,如a=b。但是这样就要解析json,然后一个个匹配,然后生成一个新的json。这样速度和性能就不行######
三套JSON不行么?A系统发送的json,{A系统JSONKey:C系统JSONKey},C系统的json。######
之前做easyUI的tree的时候,遇到过这个问题。当时直接改的bean的属性名。
后来又一次做的时候,试过json.toString.replace
遍历也是一种方法
就记得最开始看api的时候,好像找到一种更好的方法,最近做的时候,死活想不起来######
toString全局替换,或者自己重写一下序列化
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.NameFilter;
import com.alibaba.fastjson.serializer.PropertyPreFilter;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.alibaba.fastjson.serializer.SerializerFeature;
class JsonSerialTest {
public JSONArray jsonSerial(Object object){
SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.config(SerializerFeature.WriteDateUseDateFormat, true);
serializer.config(SerializerFeature.DisableCircularReferenceDetect, true);
serializer.getNameFilters().add(new NameFilter()
{
@Override
public String process(Object object, String propertyName,
Object propertyValue)
{
if (propertyName.matches("(?i)\\b[a-z]*id\\b"))//key以id结尾置换为id
return "id";
if (propertyName.matches("(?i)\\b[a-z]*name\\b"))//key以name结尾置换为name
return "name";
if ("startTime".equals(propertyName))
return "name";
return propertyName;
}
});
serializer.write(object);
return JSON.parseArray(out.toString());
}
}