0.5.1 • Published 8 years ago
Json DOT Notation Converter
Convert JSON / OBJECT by instructions.
Instructions are string dot notation directives.
Example
Input:
{
items: [{
a: 'London',
b: '1500',
nested: {
a: 'John doe',
b: '28',
c: 'UK',
}
}]
}
Instructions:
[
['items[].a', 'items[].city'],
['items[].b', 'items[].price'],
['items[].nested', 'items[].user']
],
[
['items[].user.a', 'items[].user.name'],
['items[].user.b', 'items[].user.age'],
['items[].user.c', 'items[].country'],
]
]
Output:
{
"items": [{
"city": "London",
"price": "1500",
"country": "UK",
"user": {
"name": "John doe",
"age": "28"
}
}]
}
Examples and explanation
Rename name into surname
input: { name: 'A' }
instruction: 'data.name', 'data.surname'
output: { surname: 'A' }
Copy name into surname
Copy is a special attribute that can be added to instruction.
| input | instruction | output |
|---|
| { name: 'A' } | ['name', 'surname', ['copy']] | { name: 'A', surname: 'A' } |
Move price from object to parent
| input | instruction | output |
|---|
| { name: 'A', car: { type: 'Mazda', price: 100 }} | 'car.price', 'price' | { name: 'A', price: 100, car: { type: 'Mazda' }} |
Move price from object to not existing object
| input | instruction | output |
|---|
| { name: 'A', car: { type: 'Mazda', price: 100 }} | 'car.price', 'price.mazda' | { name: 'A', car: { type: 'Mazda' }, mazda: { price: 100 }} |
Move all price from array object