fastjson의 @JSONField 주석에 대한 질문(상해)
원본을 보면 필드와 방법에 작용할 수 있습니다.
인터넷에서 말한 것을 인용하여
1. 역할 필드
@JSONField가 Field에 작용할 때name은 키를 입력하는 이름을 정의할 뿐만 아니라 출력의 이름도 정의합니다.
그러나 나는 사용 중에 위에서 말한 바와 같지 않다는 것을 발견했다.
예:
@JSONField(name="project_id")
private Long ProjectID
bean이 json을 돌리는 것을 발견했을 때는'project_id': xxx의 형식이었고, json이 json을 돌릴 때도'project_id': xx의 내용을 프로젝트 ID에 설정하지 않았습니다.fastjson 버전은 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;
}
3. @JSONField의 다른 용법은 @JSONField 주석의 원본 코드를 보십시오.name 사용 외에 format,serialize,deserialize,serialzeFeatures,parseFeatures도 사용할 수 있습니다.• 날짜 형식의 필드로 시간 형식을 포맷하는 것이 유용할 것 같습니다.
•serialize와 deserialize는 볼 유형으로
@JSONField(serialize=false)
private Long ProjectID
서열화할 때 이 필드를 포함하지 않는 것이다.deserialize는 반대입니다.하지만 주의해야 할 점이 하나 있습니다. 다른 곳을 보면 필드가final일 때 주석을 필드에 놓는 것은 작용하지 않습니다. 이때 get에 놓아야 합니다.또는 set 방법상.
•serialzeFeatures, 이 속성을 사용합니다.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로 바꾸었다.사용자 정의 서열화 행위를 통해 해결할 수 있는 다른 방법이 있어야 하며, 당분간 연구하지 않을 것이다.
이상fastjson의 @JSON Field 주해에 관한 몇 가지 문제(상해)는 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring이 @Value 메모를 통해 속성을 주입하는 몇 가지 방법에 대해 자세히 설명합니다.장면 만약 다음 속성 파일 dev.properties가 있다면, 아래의 tag를 주입해야 합니다 tag=123 PropertyPlaceholderConfigurer를 통해 코드 PreferencesPlaceholde...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.