在Android中将对象转换为JSON

oxiaedzo  于 2023-02-17  发布在  Android
关注(0)|答案(8)|浏览(180)

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

nkcskrwz

nkcskrwz1#

大多数人都在使用gson:check this

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

xhv8bpkk2#

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

}
5jvtdoz2

5jvtdoz23#

可能是更好的选择:

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

sqyvllje4#

下载Gradle库:

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

bgibtngc5#

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

nzkunb0c6#

自Android 3.0(API级别11)起,Android提供了更新和改进的JSON解析器。
http://developer.android.com/reference/android/util/JsonReader.html
将JSON(RFC 4627)编码值作为标记流读取。此流包括文本值(字符串、数字、布尔值和空值)以及对象和数组的开始和结束分隔符。标记以深度优先的顺序遍历,该顺序与它们在JSON文档中出现的顺序相同。在JSON对象中,名称/值对由单个标记表示。

rseugnpd

rseugnpd7#

Kotlin方式

val json = Gson().toJson(myObj)
9jyewag0

9jyewag08#

不管怎样,你知道的

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

您可能忘记添加**@Expose**

相关问题