这里我想在一个数组列表或哈希映射中获取解析Map值,我知道哪种方法更好。
这是我的XMl文件
我正在使用 SAX解析器来解析此事
<Navigation useNavi="1" auto="1" diable="0" >
<Map MapName="paris" MapPath="\Storage Card\PA\xyz" LoadAtStartup="1" />
<Map MapName="swiss" MapPath="\Storage Card\SW\abc" LoadAtStartup="0" />
<Map MapName="delhi" MapPath="\Storage Card\DE\del" LoadAtStartup="1" />
</Navigation>
在这里,我想要传递Map
标签,我无法轻松完成并获取其属性值,但我想知道如何为示例{{1}管理此Map
元素属性值是} MapName
我想在将来使用其各自的值,例如paris
属性值。
如何管理这三个地图值?
由于
萨姆
答案 0 :(得分:0)
创建一个类:
class MapObject
public string MapName;
public string MapPath;
public boolean LoadAtStartup;
public MapObject(string name, string path, boolean loadAtStartup){
this.MapName = name;
this.MapPath = path;
this.LoadAtStartup = loadAtStartup;
}
类实例的容器:
List<MapObject> mapsObjects = new List<MapObject>();
JSON解析器中的新实例(伪代码,你已经有了这个)
for each object in JSON data{
mapObjects.add(new MapObject(name attribute, path attribute, loadAtStartup attribute);
}
答案 1 :(得分:0)
您的问题有不同的解决方案。也许以下内容将为您提供一个可能的解决方案:
HashMap<String, Pair<String, Boolean>> mapEntries = new HashMap<String, Pair<String,Boolean>>();
//Inside SAX callback
String place = attrs.getValue("MapName");
String path = attrs.getValue("MapPath");
Boolean isLoadAtStartup = Integer.parseInt(attrs.getValue("LoadAtStartup")) == 1;
mapEntries.put(place, new Pair<String, Boolean>(path, isLoadAtStartup));
以上使用android.util.Pair
类。您也可以使用用户定义的容器类(如@Simon所示)。