gpt4 book ai didi

android - Android中单个项目的JSON解析器

转载 作者:行者123 更新时间:2023-11-30 03:06:42 24 4
gpt4 key购买 nike

我的要求很简单,我在网络服务器中有一个 JSON 文件,我必须在 android 中解析它,我知道解析方法,但我必须在以下 JSON 文件中以不同的方式显示输出,

{
"Productcategory": [
{
"shop_cat_id": "1",
"shop_cat_name": "kurtis",
"shop_scat_id1": "1",
"shop_scat_id1name": "cotton kurtis",
"shop_scat_id2": "2",
"shop_scat_id2name": "Cotton Designer Kurtis",
"shop_scat_id3": "3",
"shop_scat_id3name": "soft Designer kurtis"
},
{
"shop_cat_id": "2",
"shop_cat_name": "Sarees",
"shop_scat_id1": "1",
"shop_scat_id1name": "Saree 1",
"shop_scat_id2": "2",
"shop_scat_id2name": "Saree 2",
"shop_scat_id3": "3",
"shop_scat_id3name": "Saree 3",
"shop_scat_id4": "4",
"shop_scat_id3name": "Saree 4"
},
{
"shop_cat_id": "3",
"shop_cat_name": "Anarkkali suits",
"shop_scat_id1": "1",
"shop_scat_id1name": "Readymade",
"shop_scat_id2": "2",
"shop_scat_id2name": "Stitched",
"shop_scat_id3": "3",
"shop_scat_id3name": "Unstitched"
},
{
"shop_cat_id": "4",
"shop_cat_name": "CottonLeggins",
"shop_scat_id1": "1",
"shop_scat_id1name": "LSize",
"shop_scat_id2": "2",
"shop_scat_id2name": "XLsize",
"shop_scat_id3": "3",
"shop_scat_id3name": "3XLsize",
"shop_scat_id4": "4"
},
{
"shop_cat_id": "5",
"shop_cat_name": "PattialaPantsset",
"shop_scat_id1": "1",
"shop_scat_id1name": "LSize",
"shop_scat_id2": "2",
"shop_scat_id2name": "XLsize",
"shop_scat_id3": "3",
"shop_scat_id3name": "3XLsize",
"shop_scat_id4": "4"
},
{
"shop_cat_id": "6",
"shop_cat_name": "Kids'AnarkkaliSuits",
"shop_scat_id1": "1",
"shop_scat_id1name": "LSize",
"shop_scat_id2": "2",
"shop_scat_id2name": "XLsize",
"shop_scat_id3": "3",
"shop_scat_id3name": "3XLsize",
"shop_scat_id4": "4"
}
]
}

我在单独的 ListView 中获取了“shop_cat_name”字段,如下所示, Category

我需要在单独的 ListView 中为每个单击的类别显示子类别。但是当我解析“shop_scat_id1name”字段时,在所有具有不同类别名称的数组字段中获取数据,如下图所示,

output

当我单击第一个类别时,我需要的输出应该如下所示,对于基于其子类别的其他类别也是如此。

我点击的类别名称柯蒂斯子类别应该是

Cotton kurtis
Cotton Designer Kurtis
Soft Designer Kurtis

我必须通过什么方式修改 JSON 结构或我在编码部分需要做的任何事情?需要帮助..

最佳答案

我猜你是这样从 JSON 中获取值的:String name=JSON.getString("shop_scat_id1name");这是不对的。等一下,我给你举几个例子。

我的英语很差。非常抱歉。

首先你应该创建一个像这样的实体来存储值(value)。

public class Productcategory implements Serializable{

/**
*
*/
private static final long serialVersionUID = 7249744975503046565L;

private String shop_cat_id;
private String shop_cat_name;
private String shop_scat_id1;
private String shop_scat_id1name;
private String shop_scat_id2;
private String shop_scat_id2name;
private String shop_scat_id3;
private String shop_scat_id3name;

...Ignore get and set method

}

第二个你可以使用 gson 或者使用大量的 json.getString....

    // this is your json,I replace it with ""
String jsondata="";
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonArray Jarray = parser.parse(jsondata).getAsJsonArray();

ArrayList<Productcategory> pc_list= new ArrayList<Productcategory>();

for (JsonElement obj : Jarray) {
Productcategory pc = gson.fromJson(obj, Productcategory.class);
pc_list.add(pc);
}

第三

现在,你得到一个列表,你可以将它用于你的 ListView,如果你想点击该项目,您应该使用 pc_list.get(position) 来获取 Productcategory,这样您就可以填写详细信息页面。

我试图让你知道我在说什么。但我的英语很烂。

关于android - Android中单个项目的JSON解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com