【问题标题】:Extract Object Data into usable format将对象数据提取为可用格式
【发布时间】:2017-11-02 13:44:20
【问题描述】:

我是一个真正的新手,所以对我和我的术语放轻松,我还在学习!

我有一个 Backendless 数据库,我想在我的应用中显示。

我已经成功连接到我的Android Studio应用,查询并返回数据如下:

Backendless.Data.of("database").find(queryBuilder, new AsyncCallback>(){public void handleResponse(List''response){

Backendless SDK 上的叙述说““响应”对象是 java.util.Map 对象的集合”

然后我使用了一个迭代器: 迭代器itr = response.iterator();

还有一个用于“获取”对象的 while 循环: 对象元素 = itr.next();

到目前为止,我很高兴,下一步是从元素中提取有用的数据。

我尝试了很多选项,但我唯一的工作是 element.toString() 并使用各种方法来挑选我想要的。这似乎太低效了,我想我会向专家寻求更好的选择!?

【问题讨论】:

  • 嗨,我注意到我的问题有几个-ve“评论”。我对此很陌生,你能告诉我我的问题哪里出错了吗?

标签: java android backendless


【解决方案1】:

您的问题是关于使用 Java Map interface。所以我建议你查看它的文档,也许还有一些关于这个主题的教程。

关于您的 Backendless 问题,看起来您的请求部分是正确的。这是扩展的example from the docs,它向您展示了如何检索对象字段:

Backendless.Persistence.of( "Contact" ).find( new AsyncCallback<List<Map<String, Object>>>(){
  @Override
  public void handleResponse( List<Map<String, Object>> foundContacts )
  {
    Iterator<Map<String, Object>> contactsIterator = foundContacts.iterator();
    while( contactsIterator.hasNext() )
    {
      Map<String, Object> contact = contactsIterator.next();
      String name = (String) contact.get( "name" ); // in case you have STRING field 'name' in Backendless database
      Integer age = (Integer) contact.get( "age" ); // in case you have INT field 'age' in Backendless database
      // etc.
    }
  }
  @Override
  public void handleFault( BackendlessFault fault )
  {
    System.out.err( "Failed find: " + fault );
  }
});

如您所见,主要关注的是从响应列表中检索Map 而不是Object

而且,您的问题对于您尝试过的代码示例会更有用,并且可能直接链接到您用作示例的文档。

【讨论】:

  • Scadge,非常感谢您提出问题的帮助和反馈,非常感谢。我将在未来提供更多代码和链接。您已经用 String name = (String) contact.get("name"); 解决了我的问题。代码。我敢肯定这看起来很简单,但这让我发疯了好几天!再次感谢。
猜你喜欢
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 2022-01-10
相关资源
最近更新 更多