gpt4 book ai didi

java - JAX-RS 和 JSON 搞砸了

转载 作者:行者123 更新时间:2023-11-30 09:50:21 24 4
gpt4 key购买 nike

我已经设置了这个简单的 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"

关于java - JAX-RS 和 JSON 搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5192510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com