在C#中创建指定嵌套结构JSON对象的技术求助
多层嵌套GeoJSON对象构建分步指南
你要创建的是标准的GeoJSON FeatureCollection结构,这类多层嵌套对象的核心是从内到外或从外到内逐步拆解构建,以下是清晰的分步实现逻辑:
1. 拆解结构层级
先把整个JSON的嵌套层级拆解开,一目了然:
- 最外层:FeatureCollection 对象(包含
type和features数组)features数组:存放单个或多个Feature对象- Feature对象:包含
type、geometry对象、properties对象geometry对象:包含type(这里是LineString)和coordinates二维数组properties对象:自定义属性键值对
- Feature对象:包含
2. 分步构建(以JavaScript为例)
第一步:创建最外层容器
先搭好FeatureCollection的架子,预留features数组位置:
const featureCollection = { "type": "FeatureCollection", "features": [] };
第二步:构建最内层的坐标数据
LineString的坐标是二维数组,每个子数组代表一个点的[经度, 纬度]:
const lineCoordinates = [ [12.82114, 56.6762238], [12.8211, 56.67633], [12.82085, 56.67668], [12.82106, 56.6767], [12.82135, 56.67675], [12.82164, 56.67683], [12.82188, 56.67693] ];
第三步:构建geometry对象
把坐标数据和LineString类型组合成geometry:
const lineGeometry = { "type": "LineString", "coordinates": lineCoordinates };
第四步:构建自定义属性对象
这里是线段的颜色属性,你可以根据需求添加更多键值对:
const lineProperties = { "stroke": "blue" };
第五步:组合成Feature对象并放入容器
把geometry和properties塞进Feature,再添加到features数组里:
const lineFeature = { "type": "Feature", "geometry": lineGeometry, "properties": lineProperties }; featureCollection.features.push(lineFeature);
3. 关键注意事项
- JSON语法严格:所有字符串必须用双引号,不能用单引号;括号
{}/[]必须严格配对 - GeoJSON坐标顺序:必须是
[经度, 纬度],不要搞反 - 如果需要多个Feature,直接在features数组里添加更多同结构的Feature对象即可
内容的提问来源于stack exchange,提问作者Tobias Axbard
相关产品推荐
相关产品推荐

