#json #apache-nifi
#json #apache-nifi
Вопрос:
Я пытаюсь ОПУБЛИКОВАТЬ файл JSON (используя Apache NiFi) в приложении, которое принимает только значения с максимальным количеством знаков после запятой 10.
Формат JSON:
{
"timestamp" : "2016-04-17",
"zoom" : 13,
"dc" : 100,
"CloudCoverPercentage" : 74.707,
"mean" : 0.18735192480231655,
"num" : 127,
"FirstQuartile" : 0.142807444773004,
"median" : 0.17882054533925174,
"max" : 0.32004310344827586,
"min" : 0.059890294413970674,
"ThirdQuartile" : 0.22603810187853218,
"StandardDeviation" : 0.06846369990524923
}
Вопрос: Как мне преобразовать каждое десятичное значение в Apache Nifi, чтобы оно содержало только 10 знаков после запятой?
Я где-то читал, что для этого можно использовать JoltTransformJSON. Как мне написать спецификацию Jolt для такого рода операций?
Комментарии:
1. как вы создаете этот json? в первую очередь
2. Я получаю это из конечной точки API, используя InvokeHTTP.
Ответ №1:
Вы можете использовать UpdateRecord
с jsonReader
(схема вывода), JsonSetWriter
(схема наследования)
Ввод:
{
"timestamp" : "2016-04-17",
"zoom" : 13,
"dc" : 100,
"CloudCoverPercentage" : 74.707,
"mean" : 0.18735192480231655,
"num" : 127,
"FirstQuartile" : 0.142807444773004,
"median" : 0.17882054533925174,
"max" : 0.32004310344827586,
"min" : 0.059890294413970674,
"ThirdQuartile" : 0.22603810187853218,
"StandardDeviation" : 0.06846369990524923
}
Вывод:
[ {
"timestamp" : "2016-04-17",
"zoom" : 13,
"dc" : 100,
"CloudCoverPercentage" : 74.707,
"mean" : 0.18735192480231655,
"num" : 127,
"FirstQuartile" : 0.142807444773004,
"median" : 0.1788205453,
"max" : 0.32004310344827586,
"min" : 0.059890294413970674,
"ThirdQuartile" : 0.22603810187853218,
"StandardDeviation" : 0.06846369990524923
} ]
Комментарии:
1. Спасибо! Это намного проще, чем опция executeScript (ECMA).