JSONObject, Android, JSONObject/JSONArray, . , , / JSON.
ProductLineItem lineItem = ...;
JSONObject json = new JSONObject();
json.put( "name", lineItem.getName() );
json.put( "quantity", lineItem.getCount() );
json.put( "price", lineItem.getPrice() );
... // do this for each property in your user defined class
String jsonStr = json.toString();
ProductLineItem.toJSON(). . , JSONObject : ProductLineItem obj = new ProductLineItem (jsonObject):
public class ProductLineItem {
private String name;
private int quantity;
private float price;
public MyObject( JSONObject json ) {
name = json.getString("name");
count = json.getInt("quantity");
price = json.optFloat("price");
}
}
. - :
public class ShoppingCart {
float totalPrice;
List<Rebate> rebates = new ArrayList<Rebate>();
List<ProductLineItem> lineItems = new ArrayList<ProductLineItem>();
public ShoppingCart( JSONObject json ) {
totalPrice = json.getFloat("totalPrice");
for( JSONObject rebateJson : json.getArray("rebates") ) {
rebates.add( new Rebate( rebateJson ) );
}
for( JSONObject productJson : json.getArray("lineItems") ) {
lineItems.add( new ProductLineItem( productJson ) );
}
}
public JSONObject toJSON() {
JSONObject json = new JSONObject();
json.put("totalPrice", totalPrice );
JSONArray rebatesArray = new JSONArray();
for( Rebate rebate : rebates ) {
rebatesArray.put( rebate.toJSON() );
}
JSONArray lineItemsArray = new JSONArray();
for( ProductLineItem lineItem : lineItems ) {
lineItemsArray.put( lineItem.toJSON() );
}
json.put( "rebates", rebatesArray );
json.put( "lineItems", lineItemsArray );
return json;
}
}
2 , . , , :
http://flexjson.sourceforge.net
String json = new JSONSerializer().serialize( shoppingCart );
ShoppingCart cart = new JSONDeserializer<ShoppingCart>().deserialize( json, ShoppingCart.class );