>  기사  >  웹 프론트엔드  >  잭슨이 json 문자열을 구문 분석하는 방법 정보

잭슨이 json 문자열을 구문 분석하는 방법 정보

亚连
亚连원래의
2018-06-19 10:16:283053검색

아래에서는 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에서 실행되는 진입 기능에 대한 자세한 설명

Vue에서 진입/퇴출 애니메이션을 구현하는 방법

node.js의 라우팅 및 미들웨어에 대한 자세한 소개

위 내용은 잭슨이 json 문자열을 구문 분석하는 방법 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.