Преобразование объекта в JSON в Android

есть ли простой способ конвертировать любой объект в JSON в Android?

6 ответов


большинство людей используют gson:https://github.com/google/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 "";
    }

}

может быть лучшим выбором:

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

весна для 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);

начиная с Android 3.0 (API Level 11) Android имеет более свежий и улучшенный парсер JSON.

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

считывает кодированное значение JSON (RFC 4627) как поток токенов. Этот поток включает оба литеральных значения (строки, числа, логические значения и nulls), а также начальные и конечные разделители объектов и массивов. Токены проходят по глубине-первый порядок, тот же порядок что они появляются в документе JSON. В объектах JSON имя / значение пары представлены одним маркером.


Это, как вы можете преобразовать строку JSON в объект JSON изначально без использования каких-либо внешних библиотек и получить соответствующие значения для ключа. Надеюсь, что ниже должно работать.

String JSONstring = "{/"key1/":/"I am Value for Key1/"}";

//Import these libraries
import org.json.JSONException;
import org.json.JSONObject;

//Code below
try
{
String myVariable = jsonObject.optString("key1", "Fallback Value if key1 is not present");
System.out.println("Testing: "+ myVariable);
}
catch (JSONException e) {e.printStackTrace();}