jsonトランスオブジェクトとオブジェクト配列localdatetimeエラー解決

11266 ワード

jsonトランスオブジェクト


プロファイルLocalDateTimeConfigクラスを作成するには、 をいくつか示します.

package com.ryan.cofig;
 
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
 

@Configuration
public class LocalDateTimeConfig {
    private final static String DATE_TIME_FORMATTER = "yyyy-MM-dd HH:mm:ss";
    @Bean
    ObjectMapper objectMapper() {
        return new Jackson2ObjectMapperBuilder()
                .findModulesViaServiceLoader(true)
                .serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(
                        DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER)))
                .deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(
                        DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER)))
                .build();
    }
    }

```javascript
//     

    @Autowired
    private ObjectMapper objectMapper;
 
    @Test
    public void test() throws IOException {
        UserTest userTest = new UserTest("mocar", LocalDateTime.now(), 
LocalDateTime.of(2020, 5, 1, 12, 0));
        System.out.println(userTest);
        System.out.println("------    json,  -----------");
        String json = objectMapper.writeValueAsString(userTest);
        System.out.println(json);
        System.out.println("------ json   ,  -----------");
        UserTest userTest1 = objectMapper.readValue(json, UserTest.class);
        System.out.println(userTest1);


jsonトランスオブジェクト配列

  ObjectMapper mapper = new ObjectMapper();
        List<MltWaitLendReco> lendReco = mapper.readValue(listStr,new TypeReference<List<MltWaitLendReco>>() { });
        System.out.println(lendReco.get(0).getId());