如何将 Java Class 和 Java 数组列表转换为 JSON
How to convert Java Class and Java Array List to JSON
我有一个 Java class 并且我想将它转换为 JSON 这样我就可以 POST 它到 WCF 服务
这是我正在寻找的示例:
Invoice invoice = new Invoice();
InvoiceMaster IM = new InvoiceMaster();
IM.setClientId(SelectedClient.getId());
IM.setDate("2016-01-01");
IM.setTypeId(1);
IM.setOrderedBy("abc");
invoice.setHeader(IM);
InvoiceDetail ID;
List<InvoiceDetail> IDs = new ArrayList<>();
for (OrderItem I : items) {
ID = new InvoiceDetail();
ID.setItemId(I.getItemId());
ID.setQty(I.getQuantity());
ID.setUnitPrice(I.getUnitPrice());
ID.setTotalPrice(I.getTotalPrice());
ID.setNotes("");
ID.setUnitId(0);
IDs.add(ID);
}
invoice.setDetails(IDs);
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("Invoice", invoice);
//Code to Debug the result ------
String json = jsonObject.toString();
Log.d("ABC:",json);
//------------------------------
结果如下
{"Invoice":"com.technoplusplus.distribution.Classes.Invoice@3960a129"}
Invoice 是 Parcelable 并且 Invoice.Header 是 Java class(InvoiceMaster 是 Parcelable)并且 Invoice.Details 是 Java [=34= 的列表](InvoiceDetail class 是 Parcelable)
谢谢
就这样做(来自 google 的 Gson)
Gson gson = new Gson();
String json = gson.toJson(invoice);
我有一个 Java class 并且我想将它转换为 JSON 这样我就可以 POST 它到 WCF 服务
这是我正在寻找的示例:
Invoice invoice = new Invoice();
InvoiceMaster IM = new InvoiceMaster();
IM.setClientId(SelectedClient.getId());
IM.setDate("2016-01-01");
IM.setTypeId(1);
IM.setOrderedBy("abc");
invoice.setHeader(IM);
InvoiceDetail ID;
List<InvoiceDetail> IDs = new ArrayList<>();
for (OrderItem I : items) {
ID = new InvoiceDetail();
ID.setItemId(I.getItemId());
ID.setQty(I.getQuantity());
ID.setUnitPrice(I.getUnitPrice());
ID.setTotalPrice(I.getTotalPrice());
ID.setNotes("");
ID.setUnitId(0);
IDs.add(ID);
}
invoice.setDetails(IDs);
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("Invoice", invoice);
//Code to Debug the result ------
String json = jsonObject.toString();
Log.d("ABC:",json);
//------------------------------
结果如下 {"Invoice":"com.technoplusplus.distribution.Classes.Invoice@3960a129"}
Invoice 是 Parcelable 并且 Invoice.Header 是 Java class(InvoiceMaster 是 Parcelable)并且 Invoice.Details 是 Java [=34= 的列表](InvoiceDetail class 是 Parcelable)
谢谢
就这样做(来自 google 的 Gson)
Gson gson = new Gson();
String json = gson.toJson(invoice);