fastjson의 @JSONField 주석에 대한 질문(상해)

@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 주해에 관한 몇 가지 문제(상해)는 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기