Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of. Please go ahead and download Gson library and add to your your project CLASSPATH if you haven't done so. Here is the link
http://code.google.com/p/google-gson/downloads/list
In this example we are going to learn about the toJson() method that will help us convert a Java Object to JSON String. This sample Java program generates a JSON String from the Java Object and then saves it to a file. You can choose to send your JSON String data as HTTP response to some AJAX request.
Java source code for converting an Object to JSON String
package com.as400samplecode; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import com.as400samplecode.util.OrderDetail; import com.as400samplecode.util.OrderHeader; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class GenerateJSON { public static void main(String[] args) { OrderHeader orderHeader = new OrderHeader(); orderHeader.setCustomerId("CUST01"); orderHeader.setOrderId("101010"); orderHeader.setOrderTotal(99.99); ArrayList<OrderDetail> orderDetailList = new ArrayList<OrderDetail>(); OrderDetail orderDetail = new OrderDetail(); orderDetail.setLineId("1"); orderDetail.setItemNumber("ABC"); orderDetail.setQuantity(9); orderDetail.setPrice(10.00); orderDetailList.add(orderDetail); orderDetail = new OrderDetail(); orderDetail.setLineId("2"); orderDetail.setItemNumber("XYZ"); orderDetail.setQuantity(1); orderDetail.setPrice(9.99); orderDetailList.add(orderDetail); orderHeader.setOrderDetailList(orderDetailList); Gson gson = new GsonBuilder().setPrettyPrinting().create(); //you don't need the GsonBuilder if you are just sending the //data to another system or AJAX response, in that case just use //Gson gson = new Gson(); // convert java object to JSON format, so easy String jsonString = gson.toJson(orderHeader); //write the JSON data to file BufferedWriter bufferedWriter = null; try { File file = new File("data/myFile.json"); if(!file.exists()){ file.createNewFile(); } FileWriter fileWriter = new FileWriter(file); bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write(jsonString); } catch (IOException e) { e.printStackTrace(); } finally { try { if (bufferedWriter != null){ bufferedWriter.close(); } } catch (IOException ex) { ex.printStackTrace(); } } } }
Java source code for OrderHeader Object
package com.as400samplecode.util; import java.util.ArrayList; public class OrderHeader { String customerId = null; String orderId = null; Double orderTotal = null; ArrayList<OrderDetail> orderDetailList; public String getCustomerId() { return customerId; } public void setCustomerId(String customerId) { this.customerId = customerId; } public String getOrderId() { return orderId; } public void setOrderId(String orderId) { this.orderId = orderId; } public Double getOrderTotal() { return orderTotal; } public void setOrderTotal(Double orderTotal) { this.orderTotal = orderTotal; } public ArrayList<OrderDetail> getOrderDetailList() { return orderDetailList; } public void setOrderDetailList(ArrayList<OrderDetail> orderDetailList) { this.orderDetailList = orderDetailList; } }
Java source code for OrderDetail Object
package com.as400samplecode.util; public class OrderDetail { String lineId = null; String itemNumber = null; int quantity = 0; Double price = null; public String getLineId() { return lineId; } public void setLineId(String lineId) { this.lineId = lineId; } public String getItemNumber() { return itemNumber; } public void setItemNumber(String itemNumber) { this.itemNumber = itemNumber; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } }
JSON String output in myFile.json
{ "customerId": "CUST01", "orderId": "101010", "orderTotal": 99.99, "orderDetailList": [ { "lineId": "1", "itemNumber": "ABC", "quantity": 9, "price": 10.0 }, { "lineId": "2", "itemNumber": "XYZ", "quantity": 1, "price": 9.99 } ] }
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.