Ошибка синтаксического анализа JSON: ноль;вложенным исключением является com.alibaba.fastjson.JSONException - PullRequest
0 голосов
/ 30 сентября 2019

Чтобы преобразовать пустую строку в "", введен FastJsonHttpMessageConverter. Определен контроллер: enter image description here

Модель запроса отличается: введите описание изображения здесь . И конфигурация FastJsonHttpMessageConverter: конфигурация FastjsonHttpMessageConvert Когда я вызываю контроллер с телом запроса, например: тело запроса .

Ответ: Плохой запрос: ошибка синтаксического анализа JSON: значение NULL;Вложенным исключением является com.alibaba.fastjson.JSONException.

Я не знаю, как его решить и желаю какой-нибудь полезной помощи! Большое спасибо!

1 Ответ

0 голосов
/ 30 сентября 2019

Я предлагаю использовать mapstruct как маппер, вот пример:

1) Добавление зависимостей и плагина к вашей помпе: -> плагин:

<plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>1.3.0.Final</version>
                        </path>
                    </annotationProcessorPaths>
                    <compilerArgs>
                        <compilerArg>
                            -Amapstruct.defaultComponentModel=spring
                        </compilerArg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.bsc.maven</groupId>
                <artifactId>maven-processor-plugin</artifactId>
                <version>2.2.4</version>
                <configuration>
                    <defaultOutputDirectory>
                        ${project.build.directory}/generated-sources
                    </defaultOutputDirectory>
                    <processors>
                        <processor>org.mapstruct.ap.MappingProcessor</processor>
                    </processors>
                </configuration>
                <executions>
                    <execution>
                        <id>process</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>process</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>1.0.0.Final</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

---> Зависимости:

   <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct-jdk8</artifactId>
        <version>1.1.0.Final</version>
    </dependency>

---> Пример Pojo:

public class TestPojo{
   private String test1;
   private String test2;
    //getter and setter ....

}

-> создать свой собственный универсальный интерфейс отображения:

public interface PojoMapper<D,P>{
     P toPojo(D paramterfromRequest);
   }

---> Создатьреализация универсального интерфейса:

@Mapper
public interface PojoMapper extends PojoMapper<RequestObject, TestPojo>{

  @Override
  default TestPojo toPojo(RequestObject requestObject){
    if(requestObject == null)
      return null;
    else {
      TestPojo test = new TestPojo();
      requestObject.getStringTarget() == null ? test.settest1("") : test.settest1(requestObject.getStringTarget());
      requestObject.getStringTarget2() == null ? test.settest2("") : test.settest2(requestObject.getStringTarget2());
     return test;
    }
  }
 }

надеюсь, что это может быть полезно для вас или любого другого:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...