I have a small program that returns JSON which I’m then interrogating before pushing it into an array.
An example of the data is as follows:
id=1|owner=Vina San Pedro|brandName=1865 Chilean Wine|variantName=1865 Chilean Wine|quality=Standard|minorRegionName=Nordic Countries|vol02=0|vol07=0|vol08=4.25|vol09=4.25|vol10=0|
I can iterate the above string, pushing the values into the array, but how can I ‘name’ the key in the array based on the field name from JSON, considering that items such as “Vol02”, “Vol07” may be marked as “val02”, “val07”, or “minorRegionName” can in some cases by “majorRegionName”.
edit
var finalSplit = brandDataRow.split('|');
$.each(finalSplit, function (x, y) {
var v = y.split('=');
$.each(v, function (m, n) {
formattedBrandData.push({ m: m }, { n: n });
});
});
In the above example, if my | delimiterred string contains “Owner=??????|Value=????????|Brand=???????” then when I push this into an array, I want the keys to be “Owner”, “Value” and “Brand”.
BUT, I don’t know the key names until after I’ve returned the data, so sometimes the | delimitered string could be “Owner=??????|Line=???????|Region=??????”
Try this:
Yes, it will return an object, but array can contain only numerical indexes. And in most cases you can work with object the same way as with array. Besides, see no reason to use $.each for such a simple task. Just an additional code to execute.
JSFiddle demo – see console output