jackson이 json 문자열을 구문 분석할 때 자동으로 대문자와 소문자를 변환하는 방법

php中世界最好的语言
풀어 주다: 2018-03-15 14:30:39
원래의
3918명이 탐색했습니다.

이번에는 Jackson이 json 문자열을 파싱할 때 자동 대소문자 변환 방법을 알려드리겠습니다. Jackson이 json 문자열을 파싱할 때 자동으로 대문자와 소문자를 변환하는 주의사항은 무엇입니까? 봐.

Problem

포스터에서 발생한 문제는 엔터티 클래스와 테이블에 정의된 특정 필드가 RMBPrice이고 첫 글자가 대문자라는 것입니다. sqlquery에서 반환된 열 이름도 RMBPrice입니다. 대문자로 작성했지만 를 사용하여 jquery의 데이터 테이블이 열을 초기화할 때 오류가 발생했습니다.

해당 코드 줄은 다음과 같습니다:

{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},
로그인 후 복사

페이지를 열면 이것이 표시됩니다. interface를 호출하는 브라우저에서 반환된 값을 확인하세요.

은 소문자로 된 rmbprice입니다.

분석

인터페이스가 @ResponseBody 객체를 반환합니다. 인터페이스의 반환 값은 모두 대문자이므로 json으로 변환할 때만 문제가 발생할 수 있습니다.

Baidu json의 첫 글자를 대문자로 쓰면 기사가 자동으로 소문자로 변환됩니다.

테스트 결과, 현재 모두 대문자인 몇 글자가 더 이상 대문자가 아닐 때까지 소문자로 변환되고, 소문자 뒤에 대문자가 있으면 대문자로 유지되는 것이 사실입니다.

예: RRRddRRR은 rrrddRRR이 됩니다.

Solution

js의 코드 줄을 직접 수정하여 다음과 같이 변경합니다.

{"name": "rmbprice", "data": "rmbprice", "className": "text-center", "render": formatRMBPrice},
로그인 후 복사

쿼리 후 대문자를 유지하려면 다음을 수행해야 합니다. 주석을 추가합니다.

예를 들어 jackson은 다음을 사용합니다.

엔티티 클래스에서 필드를 정의할 때:

@JsonProperty("ActionCode") 
 private String ActionCode = "";
로그인 후 복사

fastjson은 다음을 사용합니다.

@JSONField(name = "Name") 이 태그는 get 메서드 앞에 표시되어야 합니다.

public class User { 
 private String name; 
 private int age; 
 @JSONField(name = "Name") 
 public String getName(){
  return name;
 } 
 public void setName(String name){
  this.name = name;
 }
 @JSONField(name = "Age") 
 public int getAge(){
  return age;
 } 
 public void setAge(int age){
  this.age= age;
 }
}
로그인 후 복사

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

백그라운드 데이터에 대한 Ajax 요청이 성공한 후 반영되지 않는 문제를 처리하는 방법

jQuery EasyUI 탭 패널에서 탭 사용

위 내용은 jackson이 json 문자열을 구문 분석할 때 자동으로 대문자와 소문자를 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿