Java:访问下载对象中的字段
我不熟悉Java,但了解Objective-C。我需要访问下载对象中的字段Java:访问下载对象中的字段,java,Java,我不熟悉Java,但了解Objective-C。我需要访问下载对象中的字段 代码如下: car是一个Schema,car\u id是要查询的字段 Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>(); List<SMCondition> query = new ArrayList<SMCondition>(); DataSer
car
是一个Schema
,car\u 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);
}
}
....
如果你想要所有的钥匙,你会:
Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
List<String> myKeys = feedback.keySet();
有关更多信息,请查看:
编辑:
SMObject resultObj;
if(results!=null&&results.size()>0){
列出我的结果=反馈。获取(生成);
resultObj=myResults.get(0);
结果J.put(“已解决”、“1”);
结果J.put(“接受”、“1”);
结果J.put(“拒绝”、“0”);
字符串模型=(字符串)resultObj.get(“模型”);
}
一般的概念是使用键从
hashMap
获取值。该值恰好是一个对象列表;因此,您还需要迭代该列表,并从列表中检索每个对象 这完全取决于SMObject
类是什么。如果这个问题是关于迭代映射的,请参阅。也就是说,不清楚你在问题中指的是什么对象。Map
或SMObject
。谢谢。我很抱歉。结果。谢谢!我只是想澄清一下,我的印象是,结果是一种对象数组。”make'是调用该数组的键。您的代码允许我访问结果[0]吗?如果我理解正确,可以。您可以使用mResults=feedback.get(make)
将返回对象数组,此时您将使用mResults[0]
获得第一个结果。我不知道您在尝试做什么。您正在尝试向列表中添加键/值,还是检索它们?如果myResults是一个列表
,则必须使用myResults.get(0)
按索引获取myResults[0]
仅适用于数组。除此之外,布莱恩的方法看起来不错。可以想象,SMObject
包装了一个内部HashMap,但提供了一个不同的外部API——如果put(key)
不可用,请查找putString(key)
、setAttribute(key)
、set(key)
或其他类似的键控put/set/add方法。@ThomasW,你说得对。在匆忙中,我忘记了那件事。我已经更新了。谢谢
Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
List<String> myKeys = feedback.keySet();
Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
feedback.get("yourKey");
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");
}