Json Function
Search…
Json Function
Changelog
Functions
Schema
InnerJoin
Where
Select
Search
OrderBy
Limit
ToArray
Transform
Powered By
GitBook
Schema
The "Schema" function is a great way to reconfigure your json data and make it your own.
Github
repository for your stars.
Usage
Install
$
npm
install
json-function
Import
import
{
schema
}
from
'json-function'
;
Usage
Example Data
const
data
=
[
{
id
:
0
,
user
:
{
firstname
:
"John"
,
lastname
:
"Doe"
},
title
:
"Book Name"
},
{
id
:
1
,
user
:
{
firstname
:
"Johnny"
,
lastname
:
"Doe"
},
title
:
"Book Name 2"
}
];
Syntax
schema
(
data
,
{
book
:
{
id
:
"id"
,
title
:
"title"
},
firstname
:
"user.firstname"
,
lastname
:
"user.lastname"
});
Output
[
{
firstname
:
"John"
,
lastname
:
"Doe"
,
book
:
{
id
:
0
,
title
:
"Book Name"
}
},
{
firstname
:
"Johnny"
,
lastname
:
"Doe"
,
book
:
{
id
:
1
,
title
:
"Book Name 2"
}
}
];
Apart from this wonderful method, there are also some advanced uses.
Schema has a calback that hosts useful tools.
Example Data
const
data
=
[
{
id
:
0
,
user
:
{
firstname
:
"John"
,
lastname
:
"Doe"
},
title
:
"Book Name"
},
{
id
:
1
,
user
:
{
firstname
:
"Johnny"
,
lastname
:
"Doe"
},
title
:
"Book Name 2"
}
];
Syntax
join()
The default separator is a space.
schema
(
data
,
(
sc
)
=>
({
id
:
'id'
,
fullName
:
sc
.
join
(
'user.firstname'
,
'user.lastname'
)
}));
Output
[
{
id: 0,
fullName: "John Doe"
},
{
id: 1,
fullName: "Johnny Doe"
}
];
To use a custom separator.
schema
(
data
,
(
sc
)
=>
({
id
:
'id'
,
fullName
:
sc
.
join
(
'user.firstname'
,
'user.lastname'
,
{
separator
:
'_'
})
}));
Output
[
{
id
:
0
,
fullName
:
"John_Doe"
},
{
id
:
1
,
fullName
:
"Johnny_Doe"
}
];
custom()
Example Data
const
data
=
[
{
id
:
0
,
createdAt
:
"2019-03-07T19:22:36+00:00"
,
user
:
{
firstname
:
"Aykut"
,
lastname
:
"Kardaş"
}
},
{
id
:
1
,
createdAt
:
"2019-03-02T19:22:36+00:00"
,
user
:
{
firstname
:
"John"
,
lastname
:
"Doe"
}
}
];
Usage
schema
(
data
,
sc
=>
({
id
:
"id"
,
fullName
:
sc
.
custom
(
(
firstname
,
lastname
)
=>
`
${
firstname
.
toUpperCase
()
}
${
lastname
.
toUpperCase
()
}
`
,
"user.firstname"
,
"user.lastname"
),
createdAt
:
sc
.
custom
(
createdAt
=>
moment
(
createdAt
).
format
(
"MM/DD/YYYY"
),
"createdAt"
),
idIncrement
:
sc
.
custom
(
id
=>
id
+
1
,
"id"
)
}));
Output
[
{
id
:
0
,
fullName
:
"AYKUT KARDAŞ"
,
createdAt
:
"03/07/2019"
,
idIncrement
:
1
},
{
id
:
1
,
fullName
:
"JOHN DOE"
,
createdAt
:
"03/02/2019"
,
idIncrement
:
2
}
]
Previous
Changelog
Next - Functions
InnerJoin
Last modified
3yr ago
Copy link
Outline
Usage