Преобразование объекта в 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();}