在 Android 中将对象转换为 JSON

在 Android 中有没有一种简单的方法可以将任何对象转换成 JSON?

178392 次浏览

大多数人都在使用 gson: 看看这个

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


}

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

也许是个更好的选择:

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

下载图书馆分级:

implementation 'com.google.code.gson:gson:2.9.0'

在方法中使用库。

Gson gson = new Gson();


//transform a java object to json
System.out.println("json =" + gson.toJson(Object.class).toString());


//Transform a json to java object
String json = string_json;
List<Object> lstObject = gson.fromJson(json_ string, Object.class);

科特林的方式

val json = Gson().toJson(myObj)