如何解决使用Mongodb数据库在Spring Boot中从响应格式中删除根元素数组
@RequestMapping(value = "/sample",method = RequestMethod.GET)
public Object getdetails(@RequestParam(value = "sample",required = false) String sample,@RequestParam(value = "shipla",arequired = false) String shilpa,@RequestParam(value = "name",required = false) String name) throws ParseException,JsonProcessingException,javax.xml.bind.ValidationException {
Document docSourceSystem =new Document();
List<Document> aggregate = new ArrayList<>();
int queryLimit = 1000;
if (sample != null && !sample.isEmpty())
addCrtieria("sample","$Sample,indexCreated);
if (shilpa != null && !shilpa.isEmpty())
addCrtieria("shilpa",$Shilpa,indexCreated);
if (name != null && !name.isEmpty())
createTextIndexOrAddCriteria("name",Name,indexCreated);
BasicDBObject sampleFields=new BasicDBObject();
sampleFields.append("sample","$Sample);
sampleFields.append("shilpa","$Shipla");
sampleFields.append("name ","$Name");
List<? extends Bson> pipeline=getAggregate(queryLimit,projectFields);
List sampleList=collection.aggregate(pipeline).into(sampleAggregrate);
return getPrettyDocument(claimsHS);
}
响应发件人:
[
{
"_id": "abcdefgh45c8ce639026","sample": {
"sample": "sample","shilpa": "shilpa","name": "",}
},{
"_id": "5ef646fec7c645c8ce63902e",
]
专有格式:
{
"_id": "abcdefgh45c8ce639026",
我正在尝试从Response中删除根元素array [],因为它正在创建问题,并希望它以{}括号内的对象格式出现。 Array []需要从响应中删除。有人可以建议如何删除Array []。
解决方法
您的方法return getPrettyDocument(claimsHS);
返回的是对象列表,而不是单个对象实例,这就是杰克逊将其转换为json列表表示法的原因。如果希望它只是一个对象,则需要从控制器返回单个对象实例。
如果您的控制器返回的对象不超过您的问题,即使您确实不希望这两个对象属于同一类型,也可以将它们分配为列表将这两个对象都放到POJO类中并返回它。制作一个简单的POJO类并将这两个对象都设置到该类中,然后作为响应返回该对象:
class YourEnclosingPOJO {
Object class1;
Object class2;
//write getter,setters and constructors
}
然后您的json就像:
{
"class1":{
"_id": "abcdefgh45c8ce639026","sample": {
"sample": "sample","shilpa": "shilpa","name": "",}
},"class2":{
"_id": "5ef646fec7c645c8ce63902e",}
}
}
但是,如果您的控制器应该返回多个对象,则该数字可能有所不同,然后将其保留为List并在您的UI代码中进行处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。