Azure Table Storage数据经定时函数提交API如何去除JSON方括号
问题根源
你生成的JSON带多余方括号,核心原因是PersonBookingModel的Test、Info、License三个属性被赋值为List集合类型,JSON序列化时集合默认会被转为数组,就会用方括号包裹。你期望输出的是单个对象,不需要用集合承载数据。
最优解决方法(改代码逻辑,完全符合要求)
步骤1:调整PersonBookingModel的属性定义
如果你当前的PersonBookingModel里三个属性是集合类型,先改为单个实体类型:
// 改前的错误定义示例 public class PersonBookingModel { public List<PersonBookingRouteModel> Test { get; set; } public List<PersonBookingGoodsModel> Info { get; set; } public List<PersonBookingDriverModel> License { get; set; } } // 改后的正确定义 public class PersonBookingModel { public PersonBookingRouteModel Test { get; set; } public PersonBookingGoodsModel Info { get; set; } public PersonBookingDriverModel License { get; set; } }
步骤2:修改分组赋值逻辑
你已经在代码里取了分组的第一条数据baseEntity = group.First(),直接用这条数据构造对象即可,不需要遍历整个分组转列表:
var personBooking = new PersonBookingModel { Test = new PersonBookingRouteModel { name = baseEntity.PersonName.ToString() }, Info = new PersonBookingGoodsModel { Weight = baseEntity.PersonWeight.ToString(), Age = baseEntity.PersonAge.ToString() }, License = new PersonBookingDriverModel { number = baseEntity.LicenceNumber.ToString() } };
改完后直接序列化就能得到你要的无方括号格式,不需要额外处理。
应急硬编码方案(不推荐,仅临时救急使用)
如果暂时不想改模型定义,可以在序列化完成后通过字符串替换去除方括号,仅当数组内只有一个对象、且对象内容不含方括号时生效:
var payload = JsonConvert.SerializeObject(personBooking); // 硬删方括号 payload = payload.Replace("[", "").Replace("]", "");
内容的提问来源于stack exchange,提问作者Glenn Helgesen
相关产品推荐
相关产品推荐

