FastJson中将JSON解析成对象时发生错误:Exception in thread “main” java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file
问题
今天在学习JSON解析时,在使用FastJson类进行解析的时候,发生了一下问题:
代码
package JSON解析;
import java.util.Objects;
public class Person {
private String name;
private String age;
public Person() {
}
public Person(String name, String age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return Objects.equals(name, person.name) &&
Objects.equals(age, person.age);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
package JSON解析;
import com.alibaba.fastjson.JSON;
public class Demo2_FastJson {
public static void main(String[] args) {
String json = "{\"age\":\"20\",\"name\":\"lisi\"}";
Person person = JSON.parseObject(json, Person.class);
System.out.println(person);
}
}
问题
原因
包的名称包含了中文
解决方法
将包的名称中的中文字符删除,就不会出现非法字符串错误了
结果
运行OK