我知道有些线程也有类似的问题,但是我找不到适合的解决方案。
我是移动开发的初学者。我有点困惑如何将JSON
string
转换为普通JSON
。
因此我将JSON
称为string
,如下所示,此json
string
是由GSON
生成的,将Java
对象转换为此{ {1}} JSON
:
products =%5B%7B%22customers_basket_date_added%22%3A%222019-04-22%2012%3A28%3A41%22%2C%22customers_basket_id%22%3A4%2C%22customers_basket_product%22%3A%7B%22attributes% 22%3A%5B%5D%2C%22attributes_price%22%3A%220.0%22%2C%22categories_id%22%3A8%2C%22categories_name%22%3A%22Kemasan%20Botol%22%2C%22customers_basket_quantity%22%3A6% 2C%22images%22%3A%5B%5D%2C%22isSale_product%22%3A%220%22%2C%22language_id%22%3A0%2C%22motorist_id%22%3A0%2C%22motorist_name%22%3A%22% 22%2C%22id_jenis_products%22%3A0%2C%22qty_orders_max%22%3A12%2C%22qty_orders_min%22%3A6%2C%22qty_promo_bought%22%3A0%2C%22trans_limit%22%3A0%2C%22% 2C%22manufacturers_id%22%3A0%2C%22parent_id%22%3A0%2C%22products_description%22%3A%22PROMO%20APRIL%20MURAH%21%5Cu003cbr%5Cu003e%5Cr%5CnRekomendasi%20harga%20jual%20war。 2Fbotol%5Cu003cbr%5Cu003e%5Cr%5CnUntung%20Rp%201.300%20%2859%25%29%5Cu003cbr%5Cu003e%5Cr%5CnPembelian%20min%206%20botol%2C%20maks%2012%20botol%22%2C%22final_price 22%3A%222200.0%22%2C%22pr oducts_id%22%3A140%2C%22products_image%22%3A%22resources%2Fassets%2Fimages%2Fproduct_images%2F1555722212.promo-larutan-kakitiga.jpg%22%2C%22products_liked%22%3A0%2C%22products _ %% 22%22%2C%22products_name%22%3A%22PROMO%20Cap%20Kaki%20Tiga%20Botol%20200%20ml%22%2C%22products_ordered%22%3A0%2C%22products_price%22%3A%222200.0%22%2C% 22products_quantity%22%3A1%2C%22products_status%22%3A0%2C%22products_tax_class_id%22%3A0%2C%22products_viewed%22%3A0%2C%22products_weight%22%3A%221%22%2C%22products_weight_unit%22% 22Btl%22%2C%22sort_order%22%3A0%2C%22tax_class_id%22%3A0%2C%22tax_priority%22%3A0%2C%22tax_rates_id%22%3A0%2C%22tax_zone_id%22%3A0%2C%22total_price%22% 3A%2213200.0%22%7D%2C%22customers_basket_product_attributes%22%3A%5B%5D%2C%22customers_id%22%3A0%7D%5D&status = 0
从
生成JSON字符串string
并且那个new Gson().toJson(cartItemsList)
是类cartItemsList
的实例
CartProduct
和类public class CartProduct {
@SerializedName("customers_id")
@Expose
private int customersId;
@SerializedName("customers_basket_id")
@Expose
private int customersBasketId;
@SerializedName("customers_basket_date_added")
@Expose
private String customersBasketDateAdded;
@SerializedName("customers_basket_product")
@Expose
private ProductDetails customersBasketProduct;
@SerializedName("customers_basket_product_attributes")
@Expose
private List<CartProductAttributes> customersBasketProductAttributes = new ArrayList<CartProductAttributes>();
public int getCustomersId() {
return customersId;
}
public void setCustomersId(int customersId) {
this.customersId = customersId;
}
public int getCustomersBasketId() {
return customersBasketId;
}
public void setCustomersBasketId(int customersBasketId) {
this.customersBasketId = customersBasketId;
}
public String getCustomersBasketDateAdded() {
return customersBasketDateAdded;
}
public void setCustomersBasketDateAdded(String customersBasketDateAdded) {
this.customersBasketDateAdded = customersBasketDateAdded;
}
public ProductDetails getCustomersBasketProduct() {
return customersBasketProduct;
}
public void setCustomersBasketProduct(ProductDetails customersBasketProduct) {
this.customersBasketProduct = customersBasketProduct;
}
public List<CartProductAttributes> getCustomersBasketProductAttributes() {
return customersBasketProductAttributes;
}
public void setCustomersBasketProductAttributes(List<CartProductAttributes> customersBasketProductAttributes) {
this.customersBasketProductAttributes = customersBasketProductAttributes;
}
}
CartProductAttributes
这是ProductDetails类
public class CartProductAttributes implements Parcelable {
@SerializedName("customers_basket_id")
@Expose
private int customersBasketId;
@SerializedName("products_id")
@Expose
private String productsId;
@SerializedName("option")
@Expose
private Option option;
@SerializedName("values")
@Expose
private List<Value> values = new ArrayList<Value>();
public CartProductAttributes() {
}
public int getCustomersBasketId() {
return customersBasketId;
}
public void setCustomersBasketId(int customersBasketId) {
this.customersBasketId = customersBasketId;
}
public String getProductsId() {
return productsId;
}
public void setProductsId(String productsId) {
this.productsId = productsId;
}
/**
*
* @return
* The option
*/
public Option getOption() {
return option;
}
/**
*
* @param option
* The option
*/
public void setOption(Option option) {
this.option = option;
}
/**
*
* @return
* The values
*/
public List<Value> getValues() {
return values;
}
/**
*
* @param values
* The values
*/
public void setValues(List<Value> values) {
this.values = values;
}
//********** Describes the kinds of Special Objects contained in this Parcelable Instance's marshaled representation *********//
@Override
public int describeContents() {
return 0;
}
//********** Writes the values to the Parcel *********//
public void writeToParcel(Parcel parcel_out, int flags) {
parcel_out.writeValue(customersBasketId);
parcel_out.writeValue(productsId);
parcel_out.writeParcelable(option, flags);
parcel_out.writeList(values);
}
//********** Generates Instances of Parcelable class from a Parcel *********//
public static final Creator<CartProductAttributes> CREATOR = new Creator<CartProductAttributes>() {
// Creates a new Instance of the Parcelable class, Instantiating it from the given Parcel
@Override
public CartProductAttributes createFromParcel(Parcel parcel_in) {
return new CartProductAttributes(parcel_in);
}
// Creates a new array of the Parcelable class
@Override
public CartProductAttributes[] newArray(int size) {
return new CartProductAttributes[size];
}
};
//********** Retrieves the values from the Parcel *********//
protected CartProductAttributes(Parcel parcel_in) {
this.customersBasketId = parcel_in.readInt();
this.productsId = parcel_in.readString();
this.option = parcel_in.readParcelable(Option.class.getClassLoader());
this.values = new ArrayList<Value>();
parcel_in.readList(values, Value.class.getClassLoader());
}
}
并且我想将该字符串JSON转换为真实的JSON,例如:
public class ProductDetails implements Parcelable {
@SerializedName("products_id")
@Expose
private int productsId;
@SerializedName("products_quantity")
@Expose
private int productsQuantity;
@SerializedName("products_model")
@Expose
private String productsModel;
@SerializedName("products_image")
@Expose
private String productsImage;
@SerializedName("products_price")
@Expose
private String productsPrice;
@SerializedName("discount_price")
@Expose
private String discountPrice;
@SerializedName("products_date_added")
@Expose
private String productsDateAdded;
@SerializedName("products_last_modified")
@Expose
private String productsLastModified;
@SerializedName("products_date_available")
@Expose
private String productsDateAvailable;
@SerializedName("products_weight")
@Expose
private String productsWeight;
@SerializedName("products_weight_unit")
@Expose
private String productsWeightUnit;
@SerializedName("products_status")
@Expose
private int productsStatus;
@SerializedName("products_ordered")
@Expose
private int productsOrdered;
@SerializedName("products_liked")
@Expose
private int productsLiked;
@SerializedName("language_id")
@Expose
private int languageId;
@SerializedName("products_name")
@Expose
private String productsName;
@SerializedName("products_description")
@Expose
private String productsDescription;
@SerializedName("products_url")
@Expose
private String productsUrl;
@SerializedName("products_viewed")
@Expose
private int productsViewed;
@SerializedName("products_tax_class_id")
@Expose
private int productsTaxClassId;
@SerializedName("tax_rates_id")
@Expose
private int taxRatesId;
@SerializedName("tax_zone_id")
@Expose
private int taxZoneId;
@SerializedName("tax_class_id")
@Expose
private int taxClassId;
@SerializedName("tax_priority")
@Expose
private int taxPriority;
@SerializedName("tax_rate")
@Expose
private String taxRate;
@SerializedName("tax_description")
@Expose
private String taxDescription;
@SerializedName("tax_class_title")
@Expose
private String taxClassTitle;
@SerializedName("tax_class_description")
@Expose
private String taxClassDescription;
@SerializedName("categories_id")
@Expose
private int categoriesId;
@SerializedName("categories_name")
@Expose
private String categoriesName;
@SerializedName("categories_image")
@Expose
private String categoriesImage;
@SerializedName("categories_icon")
@Expose
private String categoriesIcon;
@SerializedName("parent_id")
@Expose
private int parentId;
@SerializedName("sort_order")
@Expose
private int sortOrder;
@SerializedName("isLiked")
@Expose
private String isLiked;
@SerializedName("manufacturers_id")
@Expose
private int manufacturersId;
@SerializedName("manufacturers_name")
@Expose
private String manufacturersName;
@SerializedName("manufacturers_image")
@Expose
private String manufacturersImage;
@SerializedName("manufacturers_url")
@Expose
private String manufacturersUrl;
@SerializedName("date_added")
@Expose
private String dateAdded;
@SerializedName("last_modified")
@Expose
private String lastModified;
@SerializedName("isSale_product")
@Expose
private String isSaleProduct;
@SerializedName("attributes_price")
@Expose
private String attributesPrice;
@SerializedName("final_price")
@Expose
private String productsFinalPrice;
@SerializedName("total_price")
@Expose
private String totalPrice = "";
@SerializedName("customers_basket_quantity")
@Expose
private int customersBasketQuantity;
@SerializedName("images")
@Expose
private List<Image> images = new ArrayList<Image>();
@SerializedName("attributes")
@Expose
private List<Attribute> attributes = new ArrayList<Attribute>();
@SerializedName("motorist_id")
@Expose
private long mMotoristId = 0;
@SerializedName("motorist_name")
@Expose
private String mMotoristName = "";
@SerializedName("qty_orders_min")
@Expose
private int mQuantityMin = 0;
@SerializedName("qty_orders_max")
@Expose
private int mQuantityMax = 0;
@SerializedName("id_jenis_products")
@Expose
private int mProductType = 0;
@SerializedName("trans_limit")
@Expose
private int mQuantityPromoLimit = 0;
@SerializedName("trans_live")
@Expose
private int mQuantityPromoLive = 0;
@SerializedName("qty_promo_bought")
@Expose
private int mQuantityPromoBought = 0;
@Override
public String toString() {
StringBuilder tempToString = new StringBuilder("\n--- ProductDetails ---\n");
tempToString.append("productsId: ").append(productsId).append("\n");
tempToString.append("productsName: ").append(productsName).append("\n");
tempToString.append("categoriesId: ").append(categoriesId).append("\n");
tempToString.append("categoriesName: ").append(categoriesName).append("\n");
tempToString.append("productsQuantity: ").append(productsQuantity).append("\n");
tempToString.append("productsDateAdded: ").append(productsDateAdded).append("\n");
tempToString.append("totalPrice: ").append(totalPrice).append("\n");
tempToString.append("minQuantity: ").append(mQuantityMin).append("\n");
tempToString.append("maxQuantity: ").append(mQuantityMax).append("\n");
tempToString.append("mProductType: ").append(mProductType).append("\n");
tempToString.append("mQuantityPromoLimit: ").append(mQuantityPromoLimit).append("\n");
tempToString.append("mQuantityPromoLive: ").append(mQuantityPromoLive).append("\n");
tempToString.append("mQuantityPromoBought: ").append(mQuantityPromoBought).append("\n");
return tempToString.toString();
}
}
因此,我可以读取和复制该{
"type": "donut",
"name": "Cake",
"toppings": [
{ "id": "5002", "type": "Glazed" },
{ "id": "5006", "type": "Chocolate with Sprinkles" },
{ "id": "5004", "type": "Maple" }
]
}
,并使用快速编程语言将其作为JSON
字符串从我的iOS设备发送到服务器。因为我需要像这样在请求正文中发布JSON
字符串:
我从我们的Android开发人员那里得到了JSON
JSON
。这个string
JSON
是从Android中的string
库生成的,它像这样从Java Object转换为GSON
字符串。不幸的是,Android开发人员也不了解如何将其转换为真实的JSON
,而不是JSON
JSON
。