mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-04 20:18:55 +01:00
a8641b42a7
Example: ```json { "id": 0, "colour" : { "green": 1 } } ``` becomes: ```json { "id": 0, "colour" : [], "colour.green": 1 } ``` to retain the information the key "colour" exists in the original json value. |
||
---|---|---|
.. | ||
benches | ||
fuzz | ||
src | ||
Cargo.toml | ||
README.md |
Flatten serde Json
This crate flatten serde_json
Object
in a format
similar to elastic search.
Examples
There is nothing to do
{
"id": "287947",
"title": "Shazam!",
"release_date": 1553299200,
"genres": [
"Action",
"Comedy",
"Fantasy"
]
}
Flattens to:
{
"id": "287947",
"title": "Shazam!",
"release_date": 1553299200,
"genres": [
"Action",
"Comedy",
"Fantasy"
]
}
Objects
{
"a": {
"b": "c",
"d": "e",
"f": "g"
}
}
Flattens to:
{
"a.b": "c",
"a.d": "e",
"a.f": "g"
}
Array of objects
{
"a": [
{ "b": "c" },
{ "b": "d" },
{ "b": "e" },
]
}
Flattens to:
{
"a.b": ["c", "d", "e"],
}
Array of objects with normal value in the array
{
"a": [
42,
{ "b": "c" },
{ "b": "d" },
{ "b": "e" },
]
}
Flattens to:
{
"a": 42,
"a.b": ["c", "d", "e"],
}
Array of objects of array of objects of ...
{
"a": [
"b",
["c", "d"],
{ "e": ["f", "g"] },
[
{ "h": "i" },
{ "e": ["j", { "z": "y" }] },
],
["l"],
"m",
]
}
Flattens to:
{
"a": ["b", "c", "d", "l", "m"],
"a.e": ["f", "g", "j"],
"a.h": "i",
"a.e.z": "y",
}
Collision between a generated field name and an already existing field
{
"a": {
"b": "c",
},
"a.b": "d",
}
Flattens to:
{
"a.b": ["c", "d"],
}