Implement options.asString for Item#exportJSON()

This commit is contained in:
Jürg Lehni 2013-12-30 23:34:19 +01:00
parent 6a11547942
commit c197f531a4
3 changed files with 17 additions and 8 deletions

View file

@ -40,7 +40,7 @@ Base.inject(/** @lends Base# */{
/**
* Serializes this object to a JSON string.
*
* @param {Object} [options={ precision: 5 }]
* @param {Object} [options={ asString: true, precision: 5 }]
*/
exportJSON: function(options) {
return Base.exportJSON(this, options);
@ -433,7 +433,10 @@ Base.inject(/** @lends Base# */{
},
exportJSON: function(obj, options) {
return JSON.stringify(Base.serialize(obj, options));
var json = Base.serialize(obj, options);
return options && options.asString === false
? json
: JSON.stringify(json);
},
importJSON: function(json, target) {

View file

@ -1804,12 +1804,15 @@ var Item = Base.extend(Callback, /** @lends Item# */{
* data string.
*
* The options object offers control over some aspects of the SVG export:
* <b>options.asString:</b> {@code Boolean} wether the JSON is returned as
* a {@code Object} or a {@code String}.
* <b>options.precision:</b> {@code Number} the amount of fractional
* digits in numbers used in JSON data.
*
* @name Item#exportJSON
* @function
* @param {Object} [options={ precision: 5 }] the serialization options
* @param {Object} [options={ asString: true, precision: 5 }] the
* serialization options
* @return {String} the exported JSON data
*/
@ -1836,8 +1839,8 @@ var Item = Base.extend(Callback, /** @lends Item# */{
* Exports the item with its content and child items as an SVG DOM.
*
* The options object offers control over some aspects of the SVG export:
* <b>options.asString:</b> {@code Boolean} wether a SVG node or a String
* is to be returned.
* <b>options.asString:</b> {@code Boolean} wether a SVG node or a
* {@code String} is to be returned.
* <b>options.precision:</b> {@code Number} the amount of fractional
* digits in numbers used in SVG data.
* <b>options.matchShapes:</b> {@code Boolean} wether imported path

View file

@ -335,12 +335,15 @@ var Project = PaperScopeItem.extend(/** @lends Project# */{
* a JSON data string.
*
* The options object offers control over some aspects of the SVG export:
* <b>options.asString:</b> {@code Boolean} wether the JSON is returned as
* a {@code Object} or a {@code String}.
* <b>options.precision:</b> {@code Number} the amount of fractional
* digits in numbers used in JSON data.
*
* @name Project#exportJSON
* @function
* @param {Object} [options={ precision: 5 }] the serialization options
* @param {Object} [options={ asString: true, precision: 5 }] the
* serialization options
* @return {String} the exported JSON data
*/
@ -364,8 +367,8 @@ var Project = PaperScopeItem.extend(/** @lends Project# */{
* all contained in one top level SVG group node.
*
* The options object offers control over some aspects of the SVG export:
* <b>options.asString:</b> {@code Boolean} wether a SVG node or a String
* is to be returned.
* <b>options.asString:</b> {@code Boolean} wether a SVG node or a
* {@code String} is to be returned.
* <b>options.precision:</b> {@code Number} the amount of fractional
* digits in numbers used in SVG data.
* <b>options.matchShapes:</b> {@code Boolean} wether imported path