Add Support for sunplus

This commit is contained in:
HoshimiRIN 2023-09-29 00:14:10 +08:00
parent 07a6631b81
commit 50ceaf6097
2 changed files with 24 additions and 0 deletions

View File

@ -3,6 +3,8 @@ package icu.samnyan.aqua.sega.chusan.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import icu.samnyan.aqua.sega.chusan.util.BooleanStringIntDeserializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -67,6 +69,7 @@ public class UserMusicDetail implements Serializable {
@JsonProperty("isAllJustice")
private boolean isAllJustice;
@JsonDeserialize(using = BooleanStringIntDeserializer.class)
@JsonProperty("isSuccess")
private boolean isSuccess;

View File

@ -0,0 +1,21 @@
package icu.samnyan.aqua.sega.chusan.util;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
public class BooleanStringIntDeserializer extends JsonDeserializer<Boolean> {
@Override
public Boolean deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException {
return switch (p.getCurrentToken()) {
case VALUE_STRING -> p.getText().trim().equals("1");
case VALUE_NUMBER_INT -> p.getIntValue() == 1;
case VALUE_TRUE -> true;
case VALUE_FALSE -> false;
default -> throw new UnsupportedOperationException("Cannot deserialize to boolean field");
};
}
}