json转普通对象
比如我们想转成下面的对象
@Data
public class TestParam {
private String name;
private Integer age;
}
那么你的代码可能是这样的
@Test
void test(){
String json = "{\"name\":\"一只小哎呀\",\"age\":18}";
TestParam param = JSON.parseObject(json, TestParam.class);
}
于是我在代码里回到18了~
json转list
那么如果你的json想转成list呢?别担心,也有现成的接口能帮我们办好
String json = "[{\"name\":\"一只小哎呀\",\"age\":18},{\"name\":\"一只猪猪侠\",\"age\":30}]";
List<TestParam> paramList = JSON.parseArray(json, TestParam.class);
json转map
如果我们想转成map呢?要怎么办呢?
天真的小哎呀觉得Map也是对象呀 可以JSON.parseObject(json, HashMap.class);吗?
❌❌❌
java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.不给你看======support.model.TestParam
为什么呢?因为编译器只知道要转成map,但是没有告诉编译器map里要转成什么类型,那么怎么才能告诉编译器具体的类型呢?
✅✅✅
于是commond+shift+F让我抄抄别人的代码。。
void test(){
String json = "{\"等饭吃\":{\"name\":\"一只小哎呀\",\"age\":18},\"饲养员\":{\"name\":\"一只猪猪侠\",\"age\":30}}";
Map<String, TestParam> paramMap = JSON.parseObject(json, new TypeReference<HashMap<String, TestParam>>() {
});
TestParam param= paramMap.get("等饭吃");
}
-----------碎碎念时间-----
小哎呀今年换了份新工作,这边架构更想考虑"灵活",弄的代码里很多json/map这种结构,不敢相信这是阿里系的子公司
大家怎么看待灵活和规范的取舍嘞?