Stringify object within multi-valued fields

If an object is found within an array (nested docs), stringify it
during flattening.

Closes #100
This commit is contained in:
Matt Weber 2013-05-22 11:07:20 -07:00
parent 3c361f9834
commit 07ccb63802

View File

@ -271,7 +271,17 @@ function flatten_json(object,root,array) {
var rootname = root.length == 0 ? index : root + '.' + index;
if(typeof obj == 'object' ) {
if(_.isArray(obj)) {
if(obj.length === 1 && _.isNumber(obj[0])) {
if(obj.length > 0 && typeof obj[0] === 'object') {
var strval = '';
for (var objidx = 0, objlen = obj.length; objidx < objlen; objidx++) {
if (objidx > 0) {
strval = strval + ', ';
}
strval = strval + JSON.stringify(obj[objidx]);
}
array[rootname] = strval;
} else if(obj.length === 1 && _.isNumber(obj[0])) {
array[rootname] = parseFloat(obj[0]);
} else {
array[rootname] = typeof obj === 'undefined' ? null : obj.join(',');