Я знаю, что у некоторых тем есть похожий вопрос, но я не могу найти решение для меня.
Я новичок в разработке мобильных приложений. Я немного запутался, как конвертировать JSON
string
в обычный JSON
.
поэтому у меня есть JSON
как string
, как показано ниже, этот json
string
генерируется из GSON
, который преобразует Java
объект в этот JSON
string
:
продукты =% 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% 3À6% 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% 3À6% 2C% 22qty_promo_bought% 22% 3A0% 2C% 22trans_limit% 22% 3A0% 2C% 22trans_live% 22% 3A0% 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% 20warung% 20Rp% 203,500% 2Fbotol% 5Cu003cbr% 5Cu003e% 5cr% 5CnUntung% 20Rp% 201,300% 20% 2859% 25% 29% 5Cu003cbr% 5Cu003e% 5cr% 5CnPembelian% 20мин% 206% 20botol% 2C% 20maks% 2012% 20botol% 22% 2C% 22final_price% 22% 3A% 222200,0% 22% 2C% 2 2products_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_model% 22% 3A% 22% 22% 2C% 22products_name% 22% 3A% 22PROMO% 20Cap% 20Kaki% 20Tiga% 20Botol% 20200% 20мл% 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% 3A% 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 & состояние = 0
эта строка JSON генерируется из
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
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());
}
}
и вот класс ProductDetails
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();
}
}
и я хочу преобразовать эту строку JSON в реальный JSON, например так:
{
"type": "donut",
"name": "Cake",
"toppings": [
{ "id": "5002", "type": "Glazed" },
{ "id": "5006", "type": "Chocolate with Sprinkles" },
{ "id": "5004", "type": "Maple" }
]
}
, чтобы я мог прочитать и скопировать этот JSON
и отправить его в виде JSON
строки с моего устройства iOS на сервер, используя быстрый язык программирования. потому что мне нужно опубликовать эту JSON
строку в теле запроса следующим образом:
Я получаю это JSON
string
от нашего разработчика Android. этот JSON
string
генерируется из библиотеки GSON
в Android и конвертируется из Java Object в JSON
строку таким образом. К сожалению, разработчик Android также не понимает, как преобразовать его в реальный JSON
, а не JSON
string
.