Re: java/json大师请进

楼主: Rushia (みけねこ的鼻屎)   2022-10-26 10:48:46
※ 引述《SuicideComet (|)》之铭言:
: 我我刚接到一个问题
: 如果今天订的json有数字
: 然后接到空字串
: 那在java这边可不可以不报错
: 而是转成0
: number: int
: 但是今天丢
: {number:""}
: 要不报错变成
: int number = 0
: 这样
: 这可能吗
: 然后一般会这样作吗
: 我主管是说要减少错误可能
: 我觉得想跑
:
可以自定义反序列化规则,大概像下面这样吧
@RequestMapping("/api")
public class TestController {
@PostMapping("/test")
public Object test(@RequestBody People people) throws
JsonProcessingException {
return people;
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonComponent
class People{
String name;
Integer age;
static class PeopleDeserializer extends StdDeserializer<People> {
public PeopleDeserializer() {this(null);}
public PeopleDeserializer(Class<?> vc) {super(vc);}
@Override
public People deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException {
JsonNode node = jp.getCodec().readTree(jp);
Integer age = node.get("age").numberValue() == null ? 0 :
node.get("age").asInt();
String name = node.get("name").asText().toUpperCase();
return new People(name, age);
}
}
}
age收到空字串自动填充0否则parse
作者: Jaka (Jaka)   2022-10-26 10:54:00
大师
作者: dannyko (dannyko)   2022-10-26 10:57:00
大师
作者: SuicideComet (|)   2022-10-26 10:57:00
干 这牵扯到整个专案的规范 我吐了当成没听到这件事情好了
楼主: Rushia (みけねこ的鼻屎)   2022-10-26 10:58:00
自杀哥 我改了一下 你可以把他丢到内部类然后丢给Spring自动序列化
作者: SuicideComet (|)   2022-10-26 10:59:00
我们现在专案颇严 乱放乱加会被问 我觉得这也不是一个很正常的设计 除非外面真的有人这样做啦给你奖金
楼主: Rushia (みけねこ的鼻屎)   2022-10-26 10:59:00
靠北 这是不是狼师的钱
作者: sustainer123 (caster)   2022-10-26 11:00:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com