[위 에 올 리 기] FastJSon 중 @ JSONfield 주석 사용
@JSONField
看源码它可以作用于字段和方法上。
引用网上说的,
一、作用Field
@JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称。
但是我在使用中,发现并不如上所说。
例如
@JSONField(name="project_id") private Long ProjectID
发现bean 转json的时候并是"project_id":xxx的形式,json转bean的时候也不会把"project_id":xx的内容设置到ProjectID的里面。
fastjson的版本是1.1.15
二、作用在setter和getter方法上 这种方式倒是在使用的过程当中符合期望。
/**bean json bean ProjectID project_id */ @JSONField(name="project_id") public Long getProjectID() { return ProjectID; }
/**json bean json project_id projectID*/ @JSONField(name="project_id") public void setProjectID(Long projectID) { ProjectID = projectID; }
、@JSONField ,
@JSONField , name , format,serialize,deserialize,serialzeFeatures,parseFeatures ,
format, Date 형식의 필드 에서 시간 형식 을 포맷 하 는 것 이 유용 할 것 같 습 니 다.
serialize 와 deserialize 는 불 유형 이 고 용법 은 이다.@JSONField(serialize=false) private Long ProjectID
서열 화 할 때 이 필드 를 포함 하지 않 는 다 는 것 이다.deserialize 는 반대 입 니 다.그러나 주의해 야 할 것 이 있 습 니 다. 다른 곳 에서 볼 때 필드 가 final 일 때 주 해 를 필드 에 두 는 것 은 효과 가 없 으 며 이 럴 때 get 에 두 어야 합 니 다.
set 방법 상.
serialze Features, 나 는 이 속성 을 사용 합 니 다. fastjson 의 기본 직렬 화 규칙 은 필드 의 값 이 null 일 때 이 필드 를 직렬 화 하지 않 습 니 다. 예 를 들 어 나 는 이러한 수요 가 있 습 니 다.{"fieldName":"project_id","operator":"is not","value":null}
하나의 대상 이 이렇게 정렬 되 었 는데, 나의 코드 는 다음 과 같다.CriteriaVO criteriaVO = new CriteriaVO(); criteriaVO.setFieldName("project_id"); criteriaVO.setOperator("is not"); criteriaVO.setValue(null);
기본 값 은 다음 과 같은 결과 로 만 정렬 됩 니 다.{"fieldName":"project_id","operator":"is not"}
물론 fastjson 은 서열 화 된 규칙 을 제어 할 수 있 도록 해 준다.이것 은 Serializer Feature 를 사 용 했 습 니 다. 이것 은 매 거 진 것 입 니 다. 그 안에 여러 가지 가치 가 있 습 니 다. 구체 적 인 의 미 는 여러분 이 관심 이 있 는 것 을 알 수 있 습 니 다.
나 는 그 중 하 나 를 썼 을 뿐,@JSONField(serialzeFeatures=SerializerFeature.WriteMapNullValue) private String value;
이렇게 하면 value 의 값 이 null 일 때 도 값 을 정렬 합 니 다.바로 아래 의 모습, 이것 이 바로 내 가 원 하 는 결과 이다.{"fieldName":"project_id","operator":"is not","value":null}
, int ,
private int start; private int limit;
我如果不set值的时候,会序列化为下面这样
"limit":0,"start":0
기본 값 은 0 이 고 내 목 표 는 값 을 설정 하지 않 으 면 나타 나 지 않 는 다 는 것 이다.
나 는 간단하게 그들의 유형 을 Integer 로 바 꾸 었 다.사용자 정의 직렬 화 행 위 를 통 해 해결 하 는 다른 방법 이 있어 야 하 며, 잠시 연구 하지 않 는 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.