首页 > 解决方案 > json_agg() 数组到对象

问题描述

json_agg()像这样返回结果

 [{..},{..}...]

我试图找到一种方法可以将此数组更改为单个对象,我的结果是单个对象,因为它返回一个对象数组我在反序列化时遇到问题。

JsonConvert.DeserializeObject<SwmsGetDto>(swmsJson.ToString());

我试图查找 Postgres SQL 中是否有另一个聚合函数,但没有找到。

我的查询如下所示:

SELECT json_agg(d1) FROM (
  select * from positions;
)d1) as positions;

标签: c#postgresqljson.net

解决方案


由于它直接返回一个集合,因此您需要将其反序列化为

List<SwmsGetDto> array = JsonConvert.DeserializeObject<List<SwmsGetDto>>(json);

如果您坚持要开设一个课程,请定义一个包含此类列表的课程。

public class SingleObject
{
    public List<SwmsGetDto> data { get; set; }
}

然后

SingleObject single = new SingleObject() 
{ 
    data = JsonConvert.DeserializeObject<List<SwmsGetDto>>(json) 
};

推荐阅读