繁体   English   中英

无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型“ System.Collections.Generic.ICollection`1 [System.Double]”

[英]Cannot deserialize the current JSON object (e.g. {“name”:“value”}) into type 'System.Collections.Generic.ICollection`1[System.Double]'

正如我在上面发布的那样,我无法实现。 我不确定该如何实现,因为我在前端很新。 起初,我发布了示例后端JSON文件(我在borderPoints变量上遇到了问题,在我添加它之前,一切正常。)

{ 
city: "Warszawa", 
id: "b7e476a5-5894-4510-9630-637ac3a2191d", 
name: "Test", 
parcels: [{ 
id: "b7e476a5-5894-4510-9630-637ac3a2191d", 
latitude: 0, 
longitude: 0,   
"borderCoordinates": [
                [
                    0,
                    0
                ],
                [
                    1,
                    1
                ],
                [
                    1,
                    0
                ]
            ], }], }

我在下面发布一些重要的代码部分。

land.model.ts:

...
export class LocationPoint {
  public latitude: number;
  public longitude: number;
}
export class LocationPointDto {
  public latitude: number;
  public longitude: number;
}
export class Land {
...
  public id: Guid;
  public borderCoordinates: LocationPoint[];
}
export class LandDto {
...
  public id: string;
  public borderCoordinates: LocationPoint[];
  constructor(
...
    id: string,
    borderCoordinates: LocationPoint[]
  ) {
...
    this.id = id;
    this.borderCoordinates = borderCoordinates;
  }
}
...

land.module.ts

...
export function initializeMappings(mappingService: MappingService): any {
  return (): void => {
    mappingService.addMapping(LocationPoint, LocationPointDto, new BorderCoordinatesMapper());
    mappingService.addMapping(Land, LandDto, new LandMapper());
...

土地建设者

...
  public withborderCoordinates(borderCoordinates: LocationPoint[]): LandBuilder {
    this.instance.borderCoordinates = borderCoordinates;
    return this;
  }
...

土地图

...
export class BorderCoordinatesMapper implements Mapper<LocationPoint, LocationPointDto> {
  public forwardTransform(locationPoint: LocationPoint): LocationPointDto {
    return {
      latitude: locationPoint.latitude,
      longitude: locationPoint.longitude
    };
  }

  public backwardTransform(locationPointDto: LocationPointDto): LocationPoint {
    return {
      latitude: locationPointDto.latitude,
      longitude: locationPointDto.longitude
    };
  }
}

export class LandMapper implements Mapper<Land, LandDto> {
  public forwardTransform(land: Land, mappingService: MappingService): LandDto {
    return {
      id: land.id.toString(),
      borderCoordinates: { [key: string]: land.borderCoordinates}
         ? land.borderCoordinates.map(p => mappingService.map(LocationPoint, LocationPointDto, p))
         : []
    };
  }

  public backwardTransform(land: LandDto, mappingService: MappingService): Land {
    return {
      id: Guid.parse(land.id),
      borderCoordinates: land.borderCoordinates
         ? land.borderCoordinates.map(p => mappingService.map(LocationPointDto, LocationPoint, p))
         : []
    };
  }
}
...

在您的json中尝试一下:

"borderCoordinates": [
            {
                "latitude": 0,
                "longitude"0
            },
            {
                "latitude": 1,
                "longitude": 1
            },
            {
                "latitude": 1,
                "longitude": 0
            }
        ]

我仍然没有找到解决我问题的方法……这很可悲。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM