아래에서는 Jackson이 json 문자열을 구문 분석하는 방법을 공유하겠습니다. 첫 번째 대문자는 자동으로 소문자로 변환되며 이는 좋은 참조 값을 가지며 모든 사람에게 도움이 되기를 바랍니다.
Problem
포스터에서 발생한 문제는 엔터티 클래스와 테이블에 정의된 특정 필드가 RMBPrice이고 첫 글자가 대문자로 표시된다는 것입니다. SQL 쿼리로 얻은 열 이름도 RMBPrice로 표시됩니다. jquery의 데이터 테이블 열을 초기화하는 동안 오류가 발생했습니다.
해당 코드 줄은 다음과 같습니다:
{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},
페이지를 열면 이것이 표시됩니다. 인터페이스를 호출하는 브라우저에서 반환된 값을 확인하세요.
은 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; } }
또한 말했습니다:
강제 변환의 경우 com.alibaba.fastjson.serializer.PascalNameFilter를 사용하여 첫 글자를 대문자로 직접 변환하세요. 예: JSON.toJSONString(bean,new PascalNameFilter());
하지만 이름을 자동으로 소문자로 변환한 후 사용했기 때문에 위의 어떤 것도 시도하지 않았습니다. 대문자를 유지하려면 직접 더 많이 검색해야합니다 ~~☺☺
위 내용은 제가 정리한 내용입니다. 앞으로 도움이 되셨으면 좋겠습니다.
관련 기사:
Vue 구성 요소 Toast에서 디스플레이 상자 효과를 구현하는 방법 BUG 솔루션
webpack에서 실행되는 진입 기능에 대한 자세한 설명
node.js의 라우팅 및 미들웨어에 대한 자세한 소개
위 내용은 잭슨이 json 문자열을 구문 분석하는 방법 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!