2016-12-26 11 views
-1

Подготовленный запрос json, как показано ниже.Как заменить полезную нагрузку от объекта json в муле

[{ 
    "type": "John", 
    "attributes": { 
     "AA": [{ 
      "value": "1234" 
     }] 
    } 
}, 
{ 

} 
] 

Мне нужно заменить нижнюю на пустой, т.е. означает пробел ''.

, 
    { 

    } 

Не могли бы вы предоставить решение для этого.

И, наконец, он должен появиться, как показано ниже.

[{ 
     "type": "John", 
     "attributes": { 
      "AA": [{ 
       "value": "1234" 
      }] 
     } 
    } 
] 

ответ

0

Это регулярное выражение соответствует данной последовательности, однако вы, вероятно, потребуется изменить его, чтобы принять все возможности:

/, \n\{\W+?\}/ 

Просто замените матч ни с чем.

+0

Это дает Нелегальная побег sequence.could вы предоставить точную один :) – Gopi

+0

пытался имея payload.replace с выше выражением. Не работал. Не могли бы вы попросить кого-нибудь предоставить решение, как это сделать в муле :) – Gopi

+0

@Gopi помнит, что SO не является бесплатной платформой для кодирования. Вы когда-нибудь писали регулярное выражение? Вам нужно самому попробовать, это всего лишь общее регулярное выражение, оно нуждается в правильном выходе, чтобы работать в любой среде. –

0

Получаете ли вы ответ как объект JSON или как строку?

Если вы получите ответ, как объект, вы должны stringify его перед применением функции замены:

payload = JSON.parse(JSON.stringify(payload).replace(/,\{\}/, '')) 

Если ответ вы вывесили выше уже строковый и вы haven't проанализирован его в объект, метод:

payload = payload.replace(/\,\s+\n\s+\{\n\s+\}/,'') 
+0

подготовка запроса как json и отправка его по http-вызову перед отправкой его на http. нам нужно удалить все, что у нас есть, {} и отправить запрос. – Gopi

+0

Тогда просто сделайте первый вариант: полезной нагрузки = [{ "тип" : "Джон", "атрибуты": { "AA": [{ "значение": "1234" }] } }, { } ]; payload = JSON.parse (JSON.stringify (полезная нагрузка) .replace (/, \ {\} /, '')) где полезная нагрузка - ваш объект –

0

Для достижения этой цели, мы можем использовать выражение DataWeave ли в Transform сообщение или в MEL.

В этом случае я предпочитаю использовать его в MEL: #[dw('payload filter (sizeOf $) > 0')]

+0

Привет, Султони. У меня такой же вариант использования, что и вопросник. Где именно вы используете этот MEL? Полезная нагрузка должна быть json или object? Благодаря! – maatthias

+0

Я буду использовать этот MEL внутри трансформатора ** Set Payload **, а полезная нагрузка может быть как: json, так и object. –

0

Вы можете использовать оператор flatten здесь, как указано ниже. Он должен удалить пустой json. Также вы можете попробовать заменить {} с null и добавление skipnullon="everywhere"

flatten payload 

 Смежные вопросы

  • Нет связанных вопросов^_^