如何将 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);