2012-04-27 6 views
0

J'ai un problème avec le problème de format de données. J'ai une simple classe JaxBJSON, JAXB, Problèmes de formatage

@XmlRootElement(name="") 
public class MyProgressResponse { 
    private int weight; 
    private long date; 
    /** 
    * Weight is treated as a Y Axis. 
    * @return 
    */ 
    @XmlElement(name="y") 
    public int getWeight() { 
     return weight; 
    } 
    public void setWeight(int weight) { 
     this.weight = weight; 
    } 
    /** 
    * This is a UTC format of a time. 
    * value is a number of milliseconds between a specified date and midnight January 1 1970 
    * This is also treated as a X-Axis 
    * @return 
    */ 
    @XmlElement(name="x") 
    public long getDate() { 
     return date; 
    } 
    public void setDate(long date) { 
     this.date = date; 
    } 
} 

Et je veux que le service REST qui remplit qui renvoie les données. comme celui-ci

@GET 
@Path("/my") 
@Produces(MediaType.APPLICATION_JSON) 
public MyProgressResponse[] getProgressResponse(){ 
    // Get the data from DB 
    // Here the getDate will give me List<MyProgressResponse> 
    return getData().toArray(new MyProgressResponse[0]); 
} 

Maintenant, le JSON que je reçois est comme

[ 
{ 
    { 
    "x": 1335499200000, 
    "y": 85 
    } 
}, 
{ 
    { 
    "x": 1334894400000, 
    "y": 84 
    } 
}, 
.... 
] 

Mais mon exigence est d'obtenir le qui ne dispose pas d'un bloc supplémentaire { }.

[ 
    { 
    "x": 1335499200000, 
    "y": 85 
    }, 
    { 
    "x": 1334894400000, 
    "y": 84 
    }, 
    .... 
] 

Je veux utiliser ceci dans un HighChart. Je peux mettre en forme les données dans JS après avoir reçu les données mais cela me donnera plus de temps et je ne le veux pas.

Quelqu'un peut-il peut me aider à formater les données

Merci,

Talha Ahmed Khan

+0

Quelle est l'apparence de la sortie si vous la renvoyez en XML au lieu de JSON? – beerbajay

+0

Pourriez-vous publier votre classe 'MyProgressResponse'? La sortie JSON que vous avez fournie est vraiment bizarre, et pour moi, il semble qu'elle soit connectée avec l'héritage de classe 'MyProgressResponse'. –

Répondre

0

Changer votre type de méthode pour ArrayList de retour:

@GET @Path("/my") 
@Produces(MediaType.APPLICATION_JSON) 
public ArrayList<MyProgressResponse> getProgressResponse(){  
// Get the data from DB  
// Here the getDate will give me List<MyProgressResponse> 

ArrayList<MyProgressResponse> response=(ArrayList<MyProgressResponse>) getData(); 

return response; 
} 

Assurez-vous également votre implémentation de classe de haricots Serializable.

+0

Il n'y a aucun changement après la conversion en 'List' –

+0

J'ai modifié ma réponse, essayez maintenant. – shashankaholic