如何通过AO接口将JSON串转为要素类?

如何通过AO接口将JSON串转为要素类?
已邀请:

刘峥 - ArcGIS多面手

赞同来自:

【解决办法】:
通过IJSONConverterGdb接口:


string jsonfeatureSet = {\displayFieldName\:\\,\fieldAliases\:{\OBJECTID\:\OBJECTID\,\fld\:\fld\},\geometryType\:\esriGeometryPoint\,\spatialReference\:{\wkid\:102100},\fields\:[{\name\:\OBJECTID\,\type\:\esriFieldTypeOID\,\alias\:\OBJECTID\},{\name\:\fld\,\type\:\esriFieldTypeString\,\alias\:\fld\,\length\:50}],\features\:[ +
{ +
\geometry\: { +
\x\: 940411.3699657875, +
\y\: 5643498.120243863, +
\spatialReference\: {\wkid\: 102100} +
}, +
\attributes\: { +
\OBJECTID\: 1, +
\fld\: \中文\ +
} +
}]};

IJSONReader jsonReader = new JSONReaderClass();
jsonReader.ReadFromString(jsonfeatureSet);

IJSONConverterGdb JSONConverterGdb = new JSONConverterGdbClass();
IPropertySet ppOriginalToNewFieldMap;
IRecordSet pRecorset;
JSONConverterGdb.ReadRecordSet(jsonReader, null, null, out pRecorset, out ppOriginalToNewFieldMap);

Type factoryType = Type.GetTypeFromProgID(esriDataSourcesGDB.FileGDBWorkspaceFactory);
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
IWorkspace workspace = workspaceFactory.OpenFromFile(@C:\scratch.gdb, 0);
IRecordSet2 recordSet2 = pRecorset as IRecordSet2;
recordSet2.SaveAsTable(workspace, json2fc);

要回复问题请先登录注册