<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Read geometry from JSON object in ArcGIS API for Flex Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322032#M7677</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;A href="http://json.org/"&gt;http://json.org/&lt;/A&gt;&lt;SPAN&gt; - scroll page down and you'll see JSON utilities links for C#.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;UPD&lt;/STRONG&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/arcobjects-java/api/arcobjects/index.html?com/esri/arcgis/server/json/package-summary.html"&gt;ArcObjects Help for Java&lt;/A&gt;&lt;SPAN&gt; - &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;com/esri/arcgis/server/json package&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/#/JSONObjectClass_Class/004200000333000000/"&gt;ArcObjects API Reference for .NET&lt;/A&gt;&lt;SPAN&gt; - &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;JSONObject Class&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 26 Nov 2012 05:22:51 GMT</pubDate>
    <dc:creator>IvanBespalov</dc:creator>
    <dc:date>2012-11-26T05:22:51Z</dc:date>
    <item>
      <title>Read geometry from JSON object</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322031#M7676</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In Flex 3, I convert a featureset (including several simple polygons) to JSON object: var geomJSON:Object = myFeatureSet.toJSON();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I pass the geomJSON as a parameter to a web service (developed using VS2010 C# language). Now the problem is: how to read the polygons as ESRI IPolygon inside the C# web service? What kinds of ESRI classes should I use? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Many thanks in advance! And sorry for the cross posting.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 24 Nov 2012 14:52:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322031#M7676</guid>
      <dc:creator>XintaoLiu</dc:creator>
      <dc:date>2012-11-24T14:52:01Z</dc:date>
    </item>
    <item>
      <title>Re: Read geometry from JSON object</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322032#M7677</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;A href="http://json.org/"&gt;http://json.org/&lt;/A&gt;&lt;SPAN&gt; - scroll page down and you'll see JSON utilities links for C#.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;UPD&lt;/STRONG&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/arcobjects-java/api/arcobjects/index.html?com/esri/arcgis/server/json/package-summary.html"&gt;ArcObjects Help for Java&lt;/A&gt;&lt;SPAN&gt; - &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;com/esri/arcgis/server/json package&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/#/JSONObjectClass_Class/004200000333000000/"&gt;ArcObjects API Reference for .NET&lt;/A&gt;&lt;SPAN&gt; - &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;JSONObject Class&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 05:22:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322032#M7677</guid>
      <dc:creator>IvanBespalov</dc:creator>
      <dc:date>2012-11-26T05:22:51Z</dc:date>
    </item>
    <item>
      <title>Re: Read geometry from JSON object</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322033#M7678</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Xinato,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You need the class &lt;/SPAN&gt;&lt;STRONG&gt;ESRI.ArcGIS.SOESupport.Conversion&lt;/STRONG&gt;&lt;SPAN&gt;. I use this code in Desktop, but probably it works for you. Try something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.SOESupport;

public class JSonBiz
{
 private const string JSON_GEOMETRY = "geometry";
 private const string JSON_SPATIAL_REFERENCE = "spatialReference";
 private const string JSON_RINGS = "rings";
 private const string JSON_PATHS = "paths";
 private const string JSON_POINTS = "points";

 private const string JSON_Z = "z";
 public static IGeometry ToGeometry(string strJson)
 {
&amp;nbsp; IGeometry pGeometry = null;
&amp;nbsp; JsonObject pJsonObject = null;
&amp;nbsp; JsonObject pJsonObjectGeometria = null;
&amp;nbsp; JsonObject pJsonObjectSpatialReference = null;
&amp;nbsp; ISpatialReference pSpatialReference = null;

&amp;nbsp; try {
&amp;nbsp;&amp;nbsp; //Parse
&amp;nbsp;&amp;nbsp; pJsonObject = new JsonObject(strJson);

&amp;nbsp;&amp;nbsp; //Get geometry
&amp;nbsp;&amp;nbsp; if (pJsonObject.TryGetJsonObject(JSON_GEOMETRY, pJsonObjectGeometria)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeometry = getGeometry(pJsonObjectGeometria);

&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set spatial reference
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((pGeometry != null) &amp;amp;&amp;amp; pJsonObject.TryGetJsonObject(JSON_SPATIAL_REFERENCE, pJsonObjectSpatialReference)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSpatialReference = Conversion.ToSpatialReference(pJsonObjectSpatialReference.ToJson());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((pSpatialReference != null)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeometry.SpatialReference = pSpatialReference;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; } catch (Exception ex) {
&amp;nbsp;&amp;nbsp; pGeometry = null;
&amp;nbsp;&amp;nbsp; //Maybe show your own error
&amp;nbsp; }

&amp;nbsp; return pGeometry;
 }

 private static IGeometry getGeometry(JsonObject jsonObjectGeometry)
 {
&amp;nbsp; IGeometry pGeometry = null;
&amp;nbsp; IPoint pPoint = null;
&amp;nbsp; IZAware pZAware = default(IZAware);
&amp;nbsp; double dblZ = 0;
&amp;nbsp; object[] objArray = null;

&amp;nbsp; //Test all 
&amp;nbsp; if (jsonObjectGeometry.TryGetArray(JSON_RINGS, objArray)) {
&amp;nbsp;&amp;nbsp; //Polygon
&amp;nbsp;&amp;nbsp; pGeometry = Conversion.ToGeometry(jsonObjectGeometry, esriGeometryType.esriGeometryPolygon);
&amp;nbsp; } else if (jsonObjectGeometry.TryGetArray(JSON_PATHS, objArray)) {
&amp;nbsp;&amp;nbsp; //Polyline
&amp;nbsp;&amp;nbsp; pGeometry = Conversion.ToGeometry(jsonObjectGeometry, esriGeometryType.esriGeometryPolyline);
&amp;nbsp; } else if (jsonObjectGeometry.TryGetArray(JSON_POINTS, objArray)) {
&amp;nbsp;&amp;nbsp; //Multipoint
&amp;nbsp;&amp;nbsp; pGeometry = Conversion.ToGeometry(jsonObjectGeometry, esriGeometryType.esriGeometryMultipoint);
&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp; //Point
&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint = Conversion.ToGeometry(jsonObjectGeometry, esriGeometryType.esriGeometryPoint);

&amp;nbsp;&amp;nbsp;&amp;nbsp; //z value
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (jsonObjectGeometry.Exists(JSON_Z) &amp;amp;&amp;amp; jsonObjectGeometry.TryGetAsDouble(JSON_Z, dblZ)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Test value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (double.IsNaN(dblZ)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dblZ = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pZAware = pPoint;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pZAware.ZAware = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPoint.Z = dblZ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeometry = pPoint;
&amp;nbsp;&amp;nbsp; } catch (Exception ex) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeometry = null;
&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; //Envelope
&amp;nbsp;&amp;nbsp; if (pGeometry == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeometry = Conversion.ToGeometry(jsonObjectGeometry, esriGeometryType.esriGeometryEnvelope);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception ex2) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeometry = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }

&amp;nbsp; //Simplify (Maybe you don't need it)
&amp;nbsp; if ((pGeometry != null)) {
&amp;nbsp;&amp;nbsp; ITopologicalOperator pTopologicalOperator = pGeometry;
&amp;nbsp;&amp;nbsp; pTopologicalOperator.Simplify();
&amp;nbsp; }

&amp;nbsp; return pGeometry;
 }

 public static string ToJSon(ref IGeometry pGeometry)
 {
&amp;nbsp; string strJson = null;

&amp;nbsp; strJson = System.Text.Encoding.ASCII.GetString(ESRI.ArcGIS.SOESupport.Conversion.ToJson(pGeometry));

&amp;nbsp; return strJson;
 }
}
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope it helps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Esther&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:17:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322033#M7678</guid>
      <dc:creator>EstherColero</dc:creator>
      <dc:date>2021-12-11T15:17:36Z</dc:date>
    </item>
    <item>
      <title>Re: Read geometry from JSON object</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322034#M7679</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;just see this thread:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://forums.arcgis.com/threads/72057-Read-geometry-from-JSON-object" rel="nofollow" target="_blank"&gt;http://forums.arcgis.com/threads/72057-Read-geometry-from-JSON-object&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Nov 2012 06:26:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322034#M7679</guid>
      <dc:creator>TomSchuller</dc:creator>
      <dc:date>2012-11-27T06:26:08Z</dc:date>
    </item>
    <item>
      <title>Re: Read geometry from JSON object</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322035#M7680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank all you guys!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2012 02:10:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322035#M7680</guid>
      <dc:creator>XintaoLiu</dc:creator>
      <dc:date>2012-12-04T02:10:48Z</dc:date>
    </item>
    <item>
      <title>Re: Read geometry from JSON object</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322036#M7681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The original link is broken.&amp;nbsp; &lt;A _jive_internal="true" href="https://community.esri.com/message/64884"&gt;Here&lt;/A&gt;&amp;nbsp;is the updated link I think..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Jan 2018 23:09:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/read-geometry-from-json-object/m-p/322036#M7681</guid>
      <dc:creator>ChristinaMosnick</dc:creator>
      <dc:date>2018-01-23T23:09:01Z</dc:date>
    </item>
  </channel>
</rss>

