我试图弄清楚如何返回多个JSON项目。现在,我能够返回单个JSON,如下所示:
{
"result": {
"userId": "abcde123",
"telephoneNumber": "1-555-5555555"
},
"error": null
}
但我想返回多个JSON项目,如下所示:
{
"result": {{
"userId": "abcde123",
"telephoneNumber": "1-555-5555555"
}
{
"userId": "fghi456",
"telephoneNumber": "1-333-3333333"
}
},
"error": null
}
我可以将多个JSON项目视为字符串,如下所示,但我想将其作为多个JSON项目返回,但我不知道如何:
[LDAPModel(userId=abcde123, telephoneNumber=1-555-5555555), LDAPModel(userId=fghi456, telephoneNumber=1-333-3333333]
我是Java的完全入门者,并且对Java的语法不甚了解。但是我从SpringBoot得到了这些代码(包括下面的代码)。我真的不明白它在做什么,所以我不知道如何创建列表的输出。
目前,这是给我的:
public Optional<LDAPModel> getDirectReports(String cdsID) {
LdapQuery ldapQuery = LdapQueryBuilder.query()
.searchScope(SearchScope.SUBTREE)
.where("objectclass").is("person")
.and("managerID").like(cdsID);
List<LDAPModel> ldapModelList = ldapTemplate.search(ldapQuery, (Attributes attrs) ->
LDAPModel.builder()
.userId(getValue(attrs, "userid"))
.telephoneNumber(getValue(attrs, "phoneNumber"))
.build());
// for (int ii = 0; ii < ldapModelList.size(); ii++) {
// Optional.of(ldapModelList.get(ii));
// ldapModelList.isEmpty() ? Optional.empty() : Optional.of(ldapModelList.get(ii));
// }
return ldapModelList.isEmpty() ? Optional.empty() : Optional.of(ldapModelList.get(0));
}
我尝试将其放入循环中(如上面注释掉的代码中所示),但是我不知道如何创建列表。我尝试删除get(0),但是出现语法错误...我尝试了很多事情,但这没有帮助。
有人可以帮忙吗?
更新/编辑:谢谢大家的回答。我在这里发表了后续问题。如果有机会,请帮帮我。谢谢。
首先,我想指出您的JSON格式不正确。当您想用JSON表示多个对象时,应使用方括号并用逗号分隔每个对象:
{
"result": [
{
"userId": "abcde123",
"telephoneNumber": "1-555-5555555"
},
{
"userId": "fghi456",
"telephoneNumber": "1-333-3333333"
}
],
"error": null
}
尝试删除get(0)时Java代码不起作用的原因是该方法public Optional<LDAPModel> getDirectReports(String cdsID)
返回一个Optional<LDAPModel>
类型,而通过删除get(0)则实际上是在尝试返回an Optional<List<LDAPModel>>
。如果希望该方法返回列表而不是单个对象,则可以将返回类型更改为Optional<List<LDAPModel>>
,然后安全地删除get(0)。
public Optional<List<LDAPModel>> getDirectReports(String cdsID) {
LdapQuery ldapQuery = LdapQueryBuilder.query()
.searchScope(SearchScope.SUBTREE)
.where("objectclass").is("person")
.and("managerID").like(cdsID);
List<LDAPModel> ldapModelList = ldapTemplate.search(ldapQuery, (Attributes attrs) ->
LDAPModel.builder()
.userId(getValue(attrs, "userid"))
.telephoneNumber(getValue(attrs, "phoneNumber"))
.build());
return ldapModelList.isEmpty() ? Optional.empty() : Optional.of(ldapModelList);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句