我有一个这样的JSON对象, 它用于从opencart API获取送货方式。 我在这篇文章how to fill array from json object中询问了“如何从这个jsonobject在android中填充数组”, 但我没有收到任何答复。
现在我想删除一些标有“====>”
符号的行{
"shipping_methodsx": [
{
"title": "حمل و نقل با هزینه ثابت",
"quote": [
{
====> "flat": {
"code": "flat.flat",
"title": "هزینه حمل و نقل",
"cost": "10000",
"tax_class_id": "0",
"text": "10,000 تومان"
====> }
}
],
"sort_order": "1",
"error": false
},
{
"title": "حمل و نقل رایگان",
"quote": [
{
====> "free": {
"code": "free.free",
"title": "حمل و نقل رایگان",
"cost": 0,
"tax_class_id": 0,
"text": "0 تومان"
====> }
}
],
"sort_order": "3",
"error": false
},
{
"title": "پیک فروشگاه",
"quote": [
{
====> "pickup": {
"code": "pickup.pickup",
"title": "ارسال توسط پیک فروشگاه",
"cost": 0,
"tax_class_id": 0,
"text": "0 تومان"
====> }
}
],
"sort_order": "2",
"error": false
}
]
}
并使其在我的Android应用中可用,如下所示:
{
"shipping_methodsx": [
{
"title": "حمل و نقل با هزینه ثابت",
"quote": [
{
"code": "flat.flat",
"title": "هزینه حمل و نقل",
"cost": "10000",
"tax_class_id": "0",
"text": "10,000 تومان"
}
],
"sort_order": "1",
"error": false
},
{
"title": "حمل و نقل رایگان",
"quote": [
{
"code": "free.free",
"title": "حمل و نقل رایگان",
"cost": 0,
"tax_class_id": 0,
"text": "0 تومان"
}
],
"sort_order": "3",
"error": false
},
{
"title": "پیک فروشگاه",
"quote": [
{
"code": "pickup.pickup",
"title": "ارسال توسط پیک فروشگاه",
"cost": 0,
"tax_class_id": 0,
"text": "0 تومان"
}
],
"sort_order": "2",
"error": false
}
]
}
任何人都可以帮助我做到这一点吗?
答案 0 :(得分:1)
使用gson将Json字符串转换为json Model,然后更改json模型的内容以满足您的需要。最后,将json模型转换回json字符串。这里是示例代码:
public class Model {
List<Model1> shipping_methodsx;
class Model1 {
String title;
String sort_order;
boolean error;
List<Model2> quote;
List<Model3> quote1;
}
class Model2 {
@SerializedName(value = "flat", alternate = {"free", "pickup"})
Model3 key;
}
class Model3 {
String code;
String title;
String cost;
String tax_class_id;
String text;
}
}
public static String removeSomeJson(String json) {
Gson gson = new Gson();
Model ret = gson.fromJson(json, Model.class);
for(Model.Model1 model1: ret.shipping_methodsx){
model1.quote1 = new ArrayList<>();
for(Model.Model2 model2 : model1.quote) {
model1.quote1.add(model2.key);
}
model1.quote = null;
}
return gson.toJson(ret);
}