มีวิธีง่ายๆในการแปลงวัตถุเป็น JSON ใน Android หรือไม่?
มีวิธีง่ายๆในการแปลงวัตถุเป็น JSON ใน Android หรือไม่?
คำตอบ:
คนส่วนใหญ่ใช้ 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);
}
toString()
วิธีการของมันจะสร้างออบเจ็กต์ String จำนวนมากเมื่อคุณพิมพ์ด้วยวิธีเริ่มต้นซึ่งสร้างโดย Android Studio หรือ IntelliJ Idea - อย่างไรก็ตามนี่เป็นโค้ดบรรทัดเดียวและใช้พลังของ GsonBuilder
Spring สำหรับ 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 ระดับ 11) Android มี JSON Parser ที่ปรับปรุงใหม่กว่า
http://developer.android.com/reference/android/util/JsonReader.html
อ่านค่าที่เข้ารหัส JSON (RFC 4627) เป็นสตรีมของโทเค็น สตรีมนี้มีทั้งค่าตัวอักษร (สตริงตัวเลขบูลีนและค่าว่าง) ตลอดจนตัวคั่นจุดเริ่มต้นและจุดสิ้นสุดของอ็อบเจ็กต์และอาร์เรย์ โทเค็นจะถูกส่งผ่านตามลำดับความลึกก่อนซึ่งเป็นลำดับเดียวกับที่ปรากฏในเอกสาร JSON ภายในออบเจ็กต์ JSON คู่ชื่อ / ค่าจะแสดงด้วยโทเค็นเดียว
ดาวน์โหลดไลบรารี Gradle:
compile 'com.google.code.gson:gson:2.8.2'
ในการใช้ไลบรารีด้วยวิธีการ
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);