DataSchema.Text Class
Provides a DataSchema implementation which can be used to work with delimited text data.
See the apply method for usage.
Item Index
Methods
- _parseResults static
- apply static
- parse
Methods
_parseResults
-
schema -
text_in -
data_out
Schema-parsed list of results from full data
Parameters:
Returns:
apply
-
schema -
data
Applies a schema to a string of delimited data, returning a normalized
object with results in the results property. The meta property of
the response object is present for consistency, but is assigned an
empty object. If the input data is absent or not a string, an error
property will be added.
Use schema.resultDelimiter and schema.fieldDelimiter to instruct
apply how to split up the string into an array of data arrays for
processing.
Use schema.resultFields to specify the keys in the generated result
objects in response.results. The key:value pairs will be assigned
in the order of the schema.resultFields array, assuming the values
in the data records are defined in the same order.
schema.resultFields field identifiers are objects with the following properties:
key: (required) The property name you want the data value assigned to in the result object (String)parser: A function or the name of a function onY.Parsersused to convert the input value into a normalized type. Parser functions are passed the value as input and are expected to return a value.
If no value parsing is needed, you can use just the desired property name string as the field identifier instead of an object (see example below).
Parameters:
-
schemaObjectSchema to apply. Supported configuration properties are:
-
resultDelimiterStringCharacter or character sequence that marks the end of one record and the start of another.
-
[fieldDelimiter]String optionalCharacter or character sequence that marks the end of a field and the start of another within the same record.
-
[resultFields]Array optionalField identifiers to assign values in the response records. See above for details.
-
-
dataStringText data.
Returns:
Example:
// Process simple csv
var schema = {
resultDelimiter: "\n",
fieldDelimiter: ",",
resultFields: [ 'fruit', 'color' ]
},
data = "Banana,yellow\nOrange,orange\nEggplant,purple";
var response = Y.DataSchema.Text.apply(schema, data);
// response.results[0] is { fruit: "Banana", color: "yellow" }
// Use parsers
schema.resultFields = [
{
key: 'fruit',
parser: function (val) { return val.toUpperCase(); }
},
'color' // mix and match objects and strings
];
response = Y.DataSchema.Text.apply(schema, data);
// response.results[0] is { fruit: "BANANA", color: "yellow" }
