database-jones/Converters/JSONConverter.js (24 lines of code) (raw):
/*
Copyright (c) 2014, Oracle and/or its affiliates. All rights
reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA
*/
/**********************
This is the standard TypeConverter class used with JSON columns.
A JavaScript object is converted to and from a string in the database.
Writing from JavaScript to DB, this converter takes a JavaScript object and
returns a string using JSON.stringify.
Reading from DB to JavaScript, this converter takes a string formatted as
JSON.stringify and parses it into a JavaScript object to store in a field.
************************/
"use strict";
var udebug = unified_debug.getLogger("JSONConverter.js");
exports.toDB = function(jsValue) {
var result;
try {
result = JSON.stringify(jsValue);
} catch(ignore) {
// if any errors, leave undefined which does not send anything to the database
}
if (udebug.is_detail()) {
udebug.log_detail('JSONConverter toDB jsValue:', jsValue, 'result: (', typeof result, ')', result);
}
return result;
};
exports.fromDB = function(dbValue) {
var result;
try {
result = JSON.parse(dbValue);
} catch(ignore) {
// if any errors, pass through as undefined
}
if (udebug.is_detail()) {
udebug.log_detail('JSONConverter fromDB dbValue:', dbValue, 'result: (', typeof result, ')', result);
}
return result;
};