Java:访问下载对象中的字段

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

我不熟悉Java,但了解Objective-C。我需要访问下载对象中的字段

代码如下:

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");
    }