解析要用作菜单的JSON文件;“树”;在Android的列表视图中
目前我的项目中有一个本地JSON文件,我希望将其解析为一个数组,然后使用该数组生成可单击的列表项,以创建一种菜单。下面是一个示例的屏幕截图 我知道如何从数组中创建它,我遇到的问题是将需要的内容解析到数组中,以便创建此列表视图。下面是我的JSON示例解析要用作菜单的JSON文件;“树”;在Android的列表视图中,android,json,listview,Android,Json,Listview,目前我的项目中有一个本地JSON文件,我希望将其解析为一个数组,然后使用该数组生成可单击的列表项,以创建一种菜单。下面是一个示例的屏幕截图 我知道如何从数组中创建它,我遇到的问题是将需要的内容解析到数组中,以便创建此列表视图。下面是我的JSON示例 { "Weapons": { "Ranged": [ { "name": "Bow", "desc" : "Th
{
"Weapons":
{
"Ranged":
[
{
"name": "Bow",
"desc" : "This is a bow"
},
{
"name": "Crossbow",
"desc" : "This is a crossbow"
}
],
"Melee":
[
{
"name" : "Machete",
"desc" : "This is a machete"
}
]
},
"Armor":
{
"Metal":
[
{
"name": "Metal Chest Plate",
"desc": "This is a metal chest plate"
}
]
}
}
我想要一份以“武器”和“盔甲”开头的菜单。从那里,如果你点击“武器”,你会看到一个新的菜单,让你选择“远程”或“近战”。然后从“远程”你可以选择“弓”或“弩”。有没有人能帮我把它解析成一个数组,这样我就可以完成这个任务?我已经为此挣扎了好几天了。谢谢 您可以使用“JSON Simple”库执行任务。
关于这里的一些信息
公共静态最终字符串LOT\u JSON\u CAR=“CAR”;
公共静态最终字符串LOT\u JSON\u PRICE=“PRICE”;
公共静态最终字符串LOT\u JSON\u LOTS=“LOTS”;
JSONParser=新的JSONParser();
JSONObject JSONObject;
试一试{
jsonObject=(jsonObject)parser.parse(/*您的json在这里*/);
JSONArray jsonLotsArray=(JSONArray)jsonObject.get(LOT\u JSON\u LOTS);
迭代器迭代器=jsonLotsArray.Iterator();
while(iterator.hasNext()){
JSONObject jsonLot=iterator.next();
JSONObject jsonCar=(JSONObject)jsonLot.get(LOT\u JSON\u CAR);
JSONObject jsonUser=(JSONObject)jsonCar.get(CAR\u JSON\u USER);
}
}捕获(解析异常){
//这里有一些代码
}
您可以使用“JSON Simple”库执行任务。
关于这里的一些信息
公共静态最终字符串LOT\u JSON\u CAR=“CAR”;
公共静态最终字符串LOT\u JSON\u PRICE=“PRICE”;
公共静态最终字符串LOT\u JSON\u LOTS=“LOTS”;
JSONParser=新的JSONParser();
JSONObject JSONObject;
试一试{
jsonObject=(jsonObject)parser.parse(/*您的json在这里*/);
JSONArray jsonLotsArray=(JSONArray)jsonObject.get(LOT\u JSON\u LOTS);
迭代器迭代器=jsonLotsArray.Iterator();
while(iterator.hasNext()){
JSONObject jsonLot=iterator.next();
JSONObject jsonCar=(JSONObject)jsonLot.get(LOT\u JSON\u CAR);
JSONObject jsonUser=(JSONObject)jsonCar.get(CAR\u JSON\u USER);
}
}捕获(解析异常){
//这里有一些代码
}
您可以使用它将json文本反序列化到Java类中。从那里,您可以将该类与您选择的适配器一起使用来创建菜单(或者,如果您正在创建自定义菜单,则可以对其进行迭代)。您可以使用该类将json文本反序列化到Java类中。从那里,您可以将该类与您选择的适配器一起使用来创建菜单(或者,如果您正在创建自定义菜单,则可以对其进行迭代)。您可以按如下方式解决此问题:
从json结构创建POJO。这可以很容易地从
将源类型设置为JSON,注释样式设置为None。
此工具将帮助您创建具有完整层次结构的模型类
在此之后,可以使用GSON将json反序列化为java对象。GSON按如下方式执行此步骤:
Gson menu= new Gson();
menu.fromJson(receivedJsonFromBackend, YOURMODELCLASS.class)
之后,您只需使用menu.getName、menu.getDesc等菜单对象即可。您可以按如下方式解决此问题: 从json结构创建POJO。这可以很容易地从 将源类型设置为JSON,注释样式设置为None。 此工具将帮助您创建具有完整层次结构的模型类 在此之后,可以使用GSON将json反序列化为java对象。GSON按如下方式执行此步骤:
Gson menu= new Gson();
menu.fromJson(receivedJsonFromBackend, YOURMODELCLASS.class)
之后,您可以只玩menu对象,如menu.getName、menu.getDesc等