2011-03-04 6 views
2

내가 설정 한이 간단한 자바 클래스를 엉망 : 지금은 instatiating 등과 같은 JSON이 클래스를 반환하고있어 JAX-RS를 사용하여JAX-RS가와 JSON은

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; 
    }   
} 

;

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으로지고있어 그 결과가 이것이다 :

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; 
    } 

} 

내 서블릿 초기화 클래스는 다음과 같이이다

{"person":{"name":"t\u00e1\u00f2t","gender":"M","id":"1"}} 

당신은 JSON 문자열을 자바 코드입니다 볼 수 있듯이 왜 이런 일이 일어나고 어떻게 이걸 극복 할 수 있을지 내 머리카락을 뽑아 내고 있어요 ...

도움말 것입니다 감사합니다 ...

답변

2

믿거 나 말거나, 결과는 괜찮습니다. 그것은 자바로 인코딩 된 것이 아니라 비 ASCII 문자를 유니 코드 코드 포인트 (\ u ...)로 반환하는 것입니다. JSON과 같은 Javascript에 이것을로드하면 인쇄하고 디코딩하는 것을 알 수 있습니다 :

>>> p={"person":{"name":"t\u00e1\u00f2t","gender":"M","id":"1"}} 
    >>> p.person.name 
    "táòt" 
관련 문제