我是Java新手,但了解Objective-C。我需要访问字段<键,值>在下载的对象中。
以下是代码:
car
是Schema
,car_id
是要查询的字段
Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
List<SMCondition> query = new ArrayList<SMCondition>();
DataService ds = serviceProvider.getDataService();
List<SMObject> results;
try {
query.add(new SMEquals("car_id", new SMString(make)));
results = ds.readObjects("car", query);
if (results != null && results.size() > 0) {
feedback.put(make, results);
}
}
....
results是从远程数据库下载的一个Object,它基本上是一个HashMap。假设每次只返回一个对象,访问Key&amp;的代码是什么?返回结果对象中的值?
Complete Code in case you want to see it.
修改
我可以这样做:
SMObject resultObj;
if (results != null && results.size() > 0) {
resultObj = results[0];
resultObj.put("resolved", "1");
resultObj.put("accepted", "1");
resultObj.put("declined", "0");
String model = (String)resultObj.get("model");
}
答案 0 :(得分:1)
如果你想要所有的钥匙,你可以这样做:
Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
List<String> myKeys = feedback.keySet();
要获取值,您可以使用get
方法:
Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
feedback.get("yourKey");
有关详细信息,请查看:http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
编辑:
SMObject resultObj;
if (results != null && results.size() > 0) {
List<SMObject> myResults = feedback.get(make);
resultObj = myResults.get(0);
resultObj.put("resolved", "1");
resultObj.put("accepted", "1");
resultObj.put("declined", "0");
String model = (String)resultObj.get("model");
}
一般概念是您使用密钥来获取hashMap
的值。该值恰好是一个对象列表;因此,您还需要迭代该列表并从列表中检索每个对象。