我已经设置了这个简单的 Java 类:
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
private int id;
private String name;
private String gender;
public Person() {
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return this.id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGender() {
return this.gender;
}
}
现在使用 JAX-RS,我将此类实例化并以 JSON 形式返回,如下所示;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path(value="/addresses")
public class AddressBook extends Person {
public AddressBook() {
}
@GET
@Produces("application/json;charset=iso-8891-1")
public Person getList() {
Person p1 = new Person();
p1.setName("táòt");
p1.setId(1);
p1.setGender("M");
return p1;
}
}
我的servlet初始化类是这样的:
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
public class AddressBookApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(AddressBook.class);
return classes;
}
}
我得到的 JSON 结果是这样的:
{"person":{"name":"t\u00e1\u00f2t","gender":"M","id":"1"}}
正如你所看到的,JSON 字符串是 Java 编码的,我正在为为什么会发生这种情况以及如何克服这个问题而烦恼......
帮助将不胜感激...
不管你信不信,你的结果很好。它不是 Java 编码的,它只是将非 ASCII 字符作为 unicode 代码点返回(\u...)。像 JSON 那样将其加载到 Javascript 中,您会注意到它会打印并解码它:
>>> p={"person":{"name":"t\u00e1\u00f2t","gender":"M","id":"1"}}
>>> p.person.name
"táòt"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)