fastjson 反序列化枚举需要使用"\"枚举name\""这样才能成功,请问是特殊设定的嘛?

nle07wnf  于 2021-11-27  发布在  Java
关注(0)|答案(2)|浏览(425)

import com.alibaba.fastjson.JSON;

import java.util.Arrays;

public enum PartyType {

user,self_company,other_company;

PartyType() {
}

}

class enumMain{

public static void main(String[] args){
    String json = "\"user\"";
    PartyType partyType = JSON.parseObject(json, PartyType.class);
    System.out.println(partyType);
    System.out.println(partyType.name());
    PartyType[] values = partyType.values();
    System.out.println(Arrays.toString(values));
}

}

cwdobuhd

cwdobuhd1#

不加双引号不是JSON格式

inb24sb2

inb24sb22#

// 谢谢wenshao及时回复
import com.alibaba.fastjson.JSON;

public enum PartyType {

user(1),
self_company(2),
other_company(3);
PartyType(int i) { }

}

class enumMain{

public static void main(String[] args){
String json = ""user"";
// 上面的枚举类我在反序列化的时候,也只能拿到enum的name而无法拿到值,请问怎么写json两个都可以拿到?
PartyType partyType = JSON.parseObject(json, PartyType.class);
System.out.println(partyType);
System.out.println(partyType.name());
PartyType[] values = partyType.values();
System.out.println(Arrays.toString(values));
}
}

相关问题