168 votes

Convertir un objet en JSON dans Android

Existe-t-il une méthode simple pour convertir n'importe quel objet en JSON dans Android ?

336voto

James L Points 6068

La plupart des gens utilisent gson : Vérifiez ceci

Gson gson = new Gson();
String json = gson.toJson(myObj);

8 votes

Pourquoi n'avons-nous pas de méthode intégrée pour toJson ? Mais nous l'avons pour fromJson ?

0 votes

Essayez d'utiliser Gson, ils l'ont.

64voto

ingyesid Points 690
public class Producto {

int idProducto;
String nombre;
Double precio;

public Producto(int idProducto, String nombre, Double precio) {

    this.idProducto = idProducto;
    this.nombre = nombre;
    this.precio = precio;

}
public int getIdProducto() {
    return idProducto;
}
public void setIdProducto(int idProducto) {
    this.idProducto = idProducto;
}
public String getNombre() {
    return nombre;
}
public void setNombre(String nombre) {
    this.nombre = nombre;
}
public Double getPrecio() {
    return precio;
}
public void setPrecio(Double precio) {
    this.precio = precio;
}

public String toJSON(){

    JSONObject jsonObject= new JSONObject();
    try {
        jsonObject.put("id", getIdProducto());
        jsonObject.put("nombre", getNombre());
        jsonObject.put("precio", getPrecio());

        return jsonObject.toString();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return "";
    }

}

2 votes

Je préfère cette façon de faire, chaque objet a sa propre méthode stringify, merci pour la perspicacité !

11voto

ferostar Points 4822

Vous disposez également d'un paquet natif Android pour gérer JSON :

http://developer.Android.com/reference/org/json/package-summary.html

C'est assez simple et direct, je n'ai rencontré aucun problème avec.

Il s'agit d'un excellent tutoriel avec des exemples :

http://www.androidcompetencycenter.com/2009/10/json-parsing-in-Android/

4voto

Saeed Zarinfam Points 1605

Spring pour Android faire cela en utilisant RestTemplate facilement :

final String url = "http://192.168.1.50:9000/greeting";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Greeting greeting = restTemplate.getForObject(url, Greeting.class);

0 votes

Vous n'avez pas besoin d'ajouter MappingJackson2HttpMessageConverter à RestTemplate, si le Jackson Jar est dans le classpath il est ajouté automatiquement.

2voto

Mob Points 5926

Depuis Android 3.0 (API Level 11), Android dispose d'un analyseur JSON plus récent et amélioré.

http://developer.Android.com/reference/Android/util/JsonReader.html

Lit une valeur codée JSON (RFC 4627) comme un flux de jetons. Ce flux flux comprend à la fois des valeurs littérales (chaînes de caractères, nombres, booléens et nulles) ainsi que les délimiteurs de début et de fin d'objets et de tableaux. Les jetons sont parcourus dans l'ordre de la profondeur, c'est-à-dire dans le même ordre que celui dans lequel ils apparaissent dans le code JS. qu'ils apparaissent dans le document JSON. Dans les objets JSON, les paires nom/valeur sont représentées par un seul jeton. sont représentées par un seul jeton.

1 votes

C'est le contraire de ce qui a été demandé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X