Convert object to JSON in Android

前端 未结 6 659
孤城傲影
孤城傲影 2020-11-29 19:27

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

相关标签:
6条回答
  • 2020-11-29 19:39
    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 "";
        }
    
    }
    
    0 讨论(0)
  • 2020-11-29 19:41

    download the library Gradle:

    compile 'com.google.code.gson:gson:2.8.2'
    

    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);
    
    0 讨论(0)
  • 2020-11-29 19:42

    Might be better choice:

    @Override
    public String toString() {
        return new GsonBuilder().create().toJson(this, Producto.class);
    }
    
    0 讨论(0)
  • 2020-11-29 19:54

    Most people are using gson : check this

    Gson gson = new Gson();
    String json = gson.toJson(myObj);
    
    0 讨论(0)
  • 2020-11-29 19:54

    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);
    
    0 讨论(0)
  • 2020-11-29 20:01

    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.

    0 讨论(0)
提交回复
热议问题