English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Методы преобразования первой буквы к нижнему регистру при парсинге JSON с помощью Jackson

Проблема

Проблема, с которой сталкивается автор, заключается в том, что определенный поле в классе сущности и таблице定义为 RMBPrice, с заглавной буквой, имя столбца, возвращаемого sql, также заглавное RMBPrice, но при инициализации столбца с помощью jquery datatables arises ошибка.

Строка кода следующая:

{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},

Открыв страницу, будет отображаться это. Проверьте значение, возвращаемое интерфейсом при вызове браузера:

Это строчная rmbprice

Анализ

Интерфейс возвращает объект @ResponseBody, в коде ставим точку остановки, пока значение возвращаемого интерфейса не будет заглавными, поэтому возможно, что проблема возникла при преобразовании в json.

В Бaidu json, если первая буква заглавная, появляется статья об автоматическом преобразовании в строчные.

После тестирования确实是 так, все текущие заглавные буквы будут преобразованы в строчные, пока не закончится заглавная буква, если за строчными следуют заглавные, то они останутся заглавными.

Например: RRRddRRR станет rrrddRRR.

Решение

Я напрямую изменил строку кода в 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());

Но я не пробовал это, потому что я использую автоматическое преобразование в строчную букву name. Если вы хотите сохранить заглавные буквы, вам нужно будет поискать это самостоятельно. ☺☺

Вот и все, что я хочу поделиться с вами о методе преобразования первой буквы строки JSON в строчную, написанном Jackson. Надеюсь, это даст вам некоторое представление, и希望大家多多支持呐喊教程。

Заявление: содержание этой статьи взято из Интернета, авторские права принадлежат соответствующему автору, контент предоставлен пользователями Интернета, сайт не имеет права собственности, не был обработан редакторами, не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @) для сообщения о нарушении,并提供 соответствующие доказательства. Если подтвердится, сайт немедленно удаляет涉嫌侵权的内容。

Рекомендуется для просмотра