Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You can use this code to put the data into the type of data structure that you asked for:</p> <pre><code>var response = {"COLUMNS":["SETTING_NAME","SETTING_VALUE","COLOR"], "DATA":[["setting_1",100.0,"yellow"],["setting_2",150.0,"red"], ["setting_3",30.0,"green"],["setting_4",11.0,"blue"]]}; var data = response.DATA; var columns = response.COLUMNS; var hash = {}, item, name, i; var cols = {}; // remember order of columns for (i = 0; i &lt; columns.length; i++) { cols[columns[i]] = i; } // fetch data from correct column for (i = 0; i &lt; data.length; i++) { item = data[i]; name = item[cols["SETTING_NAME"]]; hash[name + "_value"] = item[cols["SETTING_VALUE"]]; hash[name + "_color"] = item[cols["COLOR"]]; } hash.num = data.length; </code></pre> <p>As you requested, this gives you a data structure like this so you can directly read any value you want:</p> <pre><code>{ "setting_1_value":100, "setting_1_color":"yellow", "setting_2_value":150, "setting_2_color":"red", "setting_3_value":30, "setting_3_color":"green", "setting_4_value":11, "setting_4_color":"blue", "num":4 } </code></pre> <p>jsFiddle here: <a href="http://jsfiddle.net/jfriend00/HZmYN/" rel="nofollow">http://jsfiddle.net/jfriend00/HZmYN/</a> that generated this result.</p> <p>Personally, I would rather use this code to parse it into this type of data structure:</p> <pre><code>var response = {"COLUMNS":["SETTING_NAME","SETTING_VALUE","COLOR"], "DATA":[["setting_1",100.0,"yellow"],["setting_2",150.0,"red"], ["setting_3",30.0,"green"],["setting_4",11.0,"blue"]]}; var data = response.DATA; var columns = response.COLUMNS; var newData = [], item, obj, i, num, match; var cols = {}; // remember order of columns for (i = 0; i &lt; columns.length; i++) { cols[columns[i]] = i; } for (i = 0; i &lt; data.length; i++) { item = data[i]; obj = {}; obj.value = item[cols["SETTING_VALUE"]]; obj.color = item[cols["COLOR"]]; obj.name = item[cols["SETTING_NAME"]]; match = obj.name.match(/\d+$/); if (match &amp;&amp; match.length &gt; 0) { obj.settingNumber = parseInt(match[0], 10); } newData.push(obj); } // now sort the array by the number in the name setting newData.sort(function(a, b) { return(a.settingNumber- b.settingNumber); }); </code></pre> <p>And generates this data structure:</p> <pre><code>[ {"value":100,"color":"yellow","name":"setting_1","settingNumber":1}, {"value":150,"color":"red","name":"setting_2","settingNumber":2}, {"value":30,"color":"green","name":"setting_3","settingNumber":3}, {"value":11,"color":"blue","name":"setting_4","settingNumber":4} ] </code></pre> <p>Illustrated in this jsFiddle: <a href="http://jsfiddle.net/jfriend00/A23Jd/" rel="nofollow">http://jsfiddle.net/jfriend00/A23Jd/</a>.</p> <p>The reason I prefer this structure, is you can more easily access the "n" settings as an array of objects:</p> <pre><code>newData[0].color newData[0].value newData[0].name newData[1].color .... </code></pre> <p>And, it's easier to iterate through the various settings</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload