<?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: Q: Howto serialize JSON string into Symbol in Silverlight API in ArcGIS API for Silverlight Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71680#M1749</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So some further investigation shows that the SimpleLineSymbol doesn't have any DataContract and DataMember attributes set. This is why the serialization fails.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When can we expect this to be implemented? I would expect this to be already available for converting JSON to objects. Now you have to do a lot of manual work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 27 Oct 2010 19:59:46 GMT</pubDate>
    <dc:creator>StevenMorlock</dc:creator>
    <dc:date>2010-10-27T19:59:46Z</dc:date>
    <item>
      <title>Q: Howto serialize JSON string into Symbol in Silverlight API</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71677#M1746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What's the best way in the Silverlight API to convert a basic json Symbol string (in this case a SimpleLineSymbol) to an object, without me needing to set the color and width manual.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"result" is a temporary object that i already created from the original json string.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Original JSON string:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that the SimpleLineSymbol only needs four properties: type, style, color and width. The other properties just need to be discarded; they are the cumulative collection of all the symbols properties.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;{
"angle":null,
"backgroundColor":null,
"borderLineColor":null,
"color":[156,156,156,255],
"contentType":null,
"font":null,
"height":null,
"horizontalAlignment":null,
"imageData":null,
"kerning":null,
"outline":null,
"rightToLeft":null,
"size":null,
"style":"esriSLSSolid",
"type":"esriSLS",
"url":null,
"verticalAlignment":null,
"width":2,
"xoffset":null,
"xscale":null,
"yoffset":null,
"yscale":null
}&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Current code to convert it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleLineSymbol symbol = (SimpleLineSymbol)Json.ConvertToObject(json, typeof(SimpleLineSymbol));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (result.color != null &amp;amp;&amp;amp; result.color.Count == 4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbol.Color = new SolidColorBrush(Color.FromArgb(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (byte)(result.color[3] &amp;amp; 0xff), (byte)(result.color[0] &amp;amp; 0xff), (byte)(result.color[1] &amp;amp; 0xff), (byte)(result.color[2] &amp;amp; 0xff)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbol.Width = result.width;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the current Json converter:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static object ConvertToObject(string json, Type type)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (MemoryStream memoryStream = new MemoryStream())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = Encoding.UTF8.GetBytes(json);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memoryStream.Write(bytes, 0, bytes.Length);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(type);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dataContractJsonSerializer.ReadObject(memoryStream);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your feedback.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Oct 2010 14:07:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71677#M1746</guid>
      <dc:creator>StevenMorlock</dc:creator>
      <dc:date>2010-10-27T14:07:01Z</dc:date>
    </item>
    <item>
      <title>Re: Q: Howto serialize JSON string into Symbol in Silverlight API</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71678#M1747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can update your color and width conversion this way.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
symbol.Color = Color.FromArgb(Convert.ToByte(result.color[3]), Convert.ToByte(result.color[0]), Convert.ToByte(result.color[1]), Convert.ToByte(result.color[2]));
symbol.Width =&amp;nbsp; Convert.ToDouble(pts, CultureInfo.InvariantCulture) * 96 / 72; // to convert from points to pixel units
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 22:46:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71678#M1747</guid>
      <dc:creator>JenniferNery</dc:creator>
      <dc:date>2021-12-10T22:46:02Z</dc:date>
    </item>
    <item>
      <title>Re: Q: Howto serialize JSON string into Symbol in Silverlight API</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71679#M1748</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;You can update your color and width conversion this way.&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
symbol.Color = Color.FromArgb(Convert.ToByte(result.color[3]), Convert.ToByte(result.color[0]), Convert.ToByte(result.color[1]), Convert.ToByte(result.color[2]));
symbol.Width =&amp;nbsp; Convert.ToDouble(pts, CultureInfo.InvariantCulture) * 96 / 72; // to convert from points to pixel units
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Jennifer,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for your reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not exactly concerned in setting the values of the symbol object. I already got that working (as you can see in my code). I'm interested in converting the original JSON (REST) result into a Symbol were these values are already populated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It seems akward and strange to serialize my object and then have to set the color and width again, even when that data is already available in the JSON resultset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to convert &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;{
"color":[156,156,156,255],
"style":"esriSLSSolid",
"type":"esriSLS",
"width":2,
}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To a SimpleLineSymbol using a Serializer without doing some stuff on the fly to set the Color and Width. The information is already there so you would expect the serializer to do this for me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So the question is, how can this be achieved?! Is there some method/class available in the ESRI Toolkit that provides this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your time&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 22:46:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71679#M1748</guid>
      <dc:creator>StevenMorlock</dc:creator>
      <dc:date>2021-12-10T22:46:05Z</dc:date>
    </item>
    <item>
      <title>Re: Q: Howto serialize JSON string into Symbol in Silverlight API</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71680#M1749</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So some further investigation shows that the SimpleLineSymbol doesn't have any DataContract and DataMember attributes set. This is why the serialization fails.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When can we expect this to be implemented? I would expect this to be already available for converting JSON to objects. Now you have to do a lot of manual work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Oct 2010 19:59:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/q-howto-serialize-json-string-into-symbol-in/m-p/71680#M1749</guid>
      <dc:creator>StevenMorlock</dc:creator>
      <dc:date>2010-10-27T19:59:46Z</dc:date>
    </item>
  </channel>
</rss>

