在 Android 中将对象转换为 JSON

发布于 2024-10-30 15:31:22 字数 42 浏览 2 评论 0原文

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

Is there a simple method to convert any object to JSON in Android?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

哭了丶谁疼 2024-11-06 15:31:22

大多数人都在使用 gson :检查一下

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

Most people are using gson : check this

Gson gson = new Gson();
String json = gson.toJson(myObj);
衣神在巴黎 2024-11-06 15:31:22
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 "";
    }

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

}
嘦怹 2024-11-06 15:31:22

可能是更好的选择:

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

Might be better choice:

@Override
public String toString() {
    return new GsonBuilder().create().toJson(this, Producto.class);
}
左岸枫 2024-11-06 15:31:22

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

download the library Gradle:

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

To use the library in a method.

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);
随梦而飞# 2024-11-06 15:31:22

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

Spring for Android do this using RestTemplate easily:

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);
辞慾 2024-11-06 15:31:22

Kotlin 方式

val json = Gson().toJson(myObj)

The Kotlin way

val json = Gson().toJson(myObj)
如梦亦如幻 2024-11-06 15:31:22

从 Android 3.0(API 级别 11)开始,Android 拥有更新且改进的 JSON 解析器。

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

将 JSON (RFC 4627) 编码值读取为令牌流。这
流包括文字值(字符串、数字、布尔值和
nulls)以及对象和数组的开始和结束分隔符。
令牌以深度优先顺序遍历,与
它们出现在 JSON 文档中。在 JSON 对象中,名称/值
对由单个标记表示。

As of Android 3.0 (API Level 11) Android has a more recent and improved JSON Parser.

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

Reads a JSON (RFC 4627) encoded value as a stream of tokens. This
stream includes both literal values (strings, numbers, booleans, and
nulls) as well as the begin and end delimiters of objects and arrays.
The tokens are traversed in depth-first order, the same order that
they appear in the JSON document. Within JSON objects, name/value
pairs are represented by a single token.

童话 2024-11-06 15:31:22

无论如何,您知道这一点

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

您可能忘记添加 @Expose

在此处输入图像描述

Anyway, you know this

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

You might have forget to add @Expose

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文