I am trying to pass some record data from Javascript to GP Service which accepts one parameter
I want to grab this parameter on the python side and parse it to variables.
I am missing something here.....Having issues....
I can pass a string to the python script so that part works....
I am just unsure of I have to JSON string formatted properly before I pass it from Javascript
or if I am trying to parse it incorrectly on the python side.....these are the steps I am taking...
Thoughts?
Step 1
Basically I am confused on how to create the JSON file on the javascript side....This will hold 3 records
I can format string to look like this and then set to JSON
<SPAN class="keyword token">var</SPAN> dict <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">'Results'</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'address'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'some address'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'id'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'sone ID'</SPAN> <SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'distance'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'some distance'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'address'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'some address'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'id'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'sone ID'</SPAN> <SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'distance'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'some distance'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'address'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'some address'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'id'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'sone ID'</SPAN> <SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'distance'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'some distance'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">var</SPAN> dictstring <SPAN class="operator token">=</SPAN> JSON<SPAN class="punctuation token">.</SPAN><SPAN class="token function">stringify</SPAN><SPAN class="punctuation token">(</SPAN>dict<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
gp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">execute</SPAN><SPAN class="punctuation token">(</SPAN>dictstring <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Step 2
I then need to pass this to a GP service I set up with an input parameter called '"Request"
Question:
When setting up the parameters do I select "STRING" ???

Step 3
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> json
jsondata <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> each <SPAN class="keyword token">in</SPAN> jsondata<SPAN class="punctuation token">[</SPAN>Results<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
varId <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>each<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'address'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
varAddress <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>each<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'id'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
varDistance <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>each<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'distance'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># do something with each of these record sets.</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>