Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/onechiporenko/ember-json-mapper
Small mapper for JSONs. It allows you to convert one object to another with minimal effort.
https://github.com/onechiporenko/ember-json-mapper
Last synced: 1 day ago
JSON representation
Small mapper for JSONs. It allows you to convert one object to another with minimal effort.
- Host: GitHub
- URL: https://github.com/onechiporenko/ember-json-mapper
- Owner: onechiporenko
- License: mit
- Created: 2014-07-09T13:28:29.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2014-08-01T10:29:18.000Z (about 10 years ago)
- Last Synced: 2024-09-10T09:01:57.394Z (23 days ago)
- Language: JavaScript
- Size: 223 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ember JSON Mapper
### What is it?
Small mapper for JSONs. It allows you to convert one object to another with minimal effort.### Installing
````
bower i ember-json-mapper
````### Usage examples
Basic
````javascript
var map = { a: 'a', c: 'b' };
var source = { a: 1, b: 2 };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, c: 2 }
````Nested objects
````javascript
var map = { a: 'a', d: 'b.c' };
var source = { a: 1, b: { c: 2 } };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: 2 }
````Nested keys
````javascript
var map = { a: 'a', 'd.e': 'b' };
var source = { a: 1, b: 2 };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: { e: 2 } }
````Nested objects and nested keys
````javascript
var map = { a: 'a', 'd.e': 'b.c' };
var source = { a: 1, b: { c: 2 } };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: { e: 2 } }
````Objects as keys
````javascript
var map = { a: 'a', c: { key: 'b' } };
var source = { a: 1, b: 2 };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, c: 2 }
````With default value
````javascript
var map = { a: 'a', c: { key: 'b', default: 3 } };
var source = { a: 1, b: 2 };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, c: 2 }
````Set value without mapping from source
````javascript
var map = { a: 'a', c: { default: 3 } };
var source = { a: 1, b: 2 };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, c: 3 }
````Custom getter
````javascript
var map = { a: 'a', 'b': { custom: function (source) {
return Ember.get(source, 'b.c') + 1;
} } };
var source = { a: 1, b: { c: 2 } };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, b: 3 }
````Array-properties mapping
````javascript
var map = { a: 'a', d: { key: 'b', map: { c: 'c' } } };
var source = { a: 1, b: [
{c: 1, d: 1},
{c: 2, d: 2}
] };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: [ {c: 1}, {c: 2} ] }
````````javascript
var map = { a: 'a', d: { key: 'b', map: { c: 'c', f: { default: 2 } } } };
var source = { a: 1, b: [
{c: 1, d: 1},
{c: 2, d: 2}
] };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: [ {c: 1, f: 2}, {c: 2, f: 2} ] }
````Multi-nesting
````javascript
var map = { a: 'a', d: { key: 'b', map: { c: 'c', v: { key: 'd', map: { e1: 'e', f1: 'f' } } } } };
var source = { a: 1, b: [
{c: 1, d: [
{ e: 3, f: 4 }
] },
{c: 2, d: [
{ e: 5, f: 6 }
] }
] };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: [ {c: 1, v: [ { e1: 3, f1: 4 } ] }, {c: 2, v: [ { e1: 5, f1: 6 } ] } ] }
````Custom getter for nested objects
````javascript
var map = { a: 'a', d: { key: 'b', map: { c: 'c', v: { key: 'd', map: { e1: 'e', f1: { custom: function(source) {
return Ember.get(source, 'f') + 1;
} } } } } } };
var source = { a: 1, b: [
{c: 1, d: [
{ e: 3, f: 4 }
] },
{c: 2, d: [
{ e: 5, f: 6 }
] }
] };
var expected = { a: 1, d: [
{c: 1, v: [
{ e1: 3, f1: 5 }
] },
{c: 2, v: [
{ e1: 5, f1: 7 }
] }
] };
var mapped = Ember.JsonMapper.map(source, map); // { a: 1, d: [ {c: 1, v: [ { e1: 3, f1: 5 } ] }, {c: 2, v: [ { e1: 5, f1: 7 } ] } ] }
````