web-dev-qa-db-ja.com

AndroidでオブジェクトをJSONに変換します

AndroidでオブジェクトをJSONに変換する簡単な方法はありますか?

110
Thys

ほとんどの人はgsonを使用しています: https://github.com/google/gson

Gson gson = new Gson();
String json = gson.toJson(myObj);
232
James L
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 "";
    }

}
55
ingyesid

より良い選択かもしれません:

@Override
public String toString() {
    return new GsonBuilder().create().toJson(this, Producto.class);
}
9
Hesam

Spring for Android RestTemplateを使用して簡単にこれを実行します。

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);
3
Saeed Zarinfam

Android 3.0(API Level 11)の時点で、Androidには、より新しく改善されたJSONパーサーがあります。

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

JSON(RFC 4627)でエンコードされた値をトークンのストリームとして読み取ります。このストリームには、リテラル値(文字列、数値、ブール値、null)とオブジェクトおよび配列の開始および終了区切り文字の両方が含まれます。トークンは、JSONドキュメントに表示されるのと同じ順序で、深さ優先順で走査されます。 JSONオブジェクト内では、名前/値のペアは単一のトークンで表されます。

1
Mob