JSONPath: различия между версиями
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
Строка 82: | Строка 82: | ||
*Для примера будем использовать JSON, который формируется после заказа в интернет-магазине: | *Для примера будем использовать JSON, который формируется после заказа в интернет-магазине: | ||
<div style="background-color:#f9f9f9; border:1px solid #ddd; padding:1em;"> | <div style="background-color:#f9f9f9; border:1px solid #ddd; padding:1em;"> | ||
[<br | [<br> | ||
{<br | {<br> | ||
<p style="padding-left:10px;"> | <p style="padding-left:10px;"> | ||
"site": "mysite.shop",<br | "site": "mysite.shop",<br> | ||
"name": "Елизавета Бояринцева",<br | "name": "Елизавета Бояринцева",<br> | ||
"id": "6598634",<br | "id": "6598634",<br> | ||
"date": "26.04.2021 09:16:05",<br | "date": "26.04.2021 09:16:05",<br> | ||
"status": "В работе",<br | "status": "В работе",<br> | ||
"email": "liz82@gmail.com",<br | "email": "liz82@gmail.com",<br> | ||
"phone": "+7 921 625-30-24",<br | "phone": "+7 921 625-30-24",<br> | ||
"address": "Павла Усова 23, корпус 1",<br | "address": "Павла Усова 23, корпус 1",<br> | ||
"price_total": "13146.00",<br | "price_total": "13146.00",<br> | ||
"item_order": [ | "item_order": [ | ||
</p> | </p> | ||
<p style="padding-left:10px;">{< | <p style="padding-left:10px;">{</p> | ||
<p style="padding-left:20px;">"sku": "598623",<br | <p style="padding-left:20px;"> | ||
"sku": "598623",<br> | |||
"name": "Скрепки, 28 мм, металлические, 100 шт., в картонной коробке",<br> | |||
"barcode": "596325689126",<br> | |||
"price": "14.60",<br> | |||
<p style="padding-left:10px;">},< | "quantity": 10 | ||
<p style="padding-left:10px;">{<br | </p> | ||
<p style="padding-left:20px;">"sku": "589624",<br | <p style="padding-left:10px;">},</p> | ||
<p style="padding-left:20px;">"name": "Бумага офисная CLASSIC, А4, 80 г/м2, 500 л., марка С",<br | <p style="padding-left:10px;">{<br> | ||
<p style="padding-left:20px;">"barcode": "5963256858963",<br | <p style="padding-left:20px;">"sku": "589624",<br> | ||
<p style="padding-left:20px;">"price": "250.00",<br | <p style="padding-left:20px;">"name": "Бумага офисная CLASSIC, А4, 80 г/м2, 500 л., марка С",<br> | ||
<p style="padding-left:20px;">"quantity": 25<br | <p style="padding-left:20px;">"barcode": "5963256858963",<br> | ||
<p style="padding-left:10px;">},<br | <p style="padding-left:20px;">"price": "250.00",<br> | ||
<p style="padding-left:10px;">{<br | <p style="padding-left:20px;">"quantity": 25<br> | ||
<p style="padding-left:20px;">"sku": "579824",<br | <p style="padding-left:10px;">},<br> | ||
<p style="padding-left:20px;">"name": "Бумага офисная LUX, А4, 80 г/м2, 500 л., марка С",<br | <p style="padding-left:10px;">{<br> | ||
<p style="padding-left:20px;">"barcode": "5963256889634",<br | <p style="padding-left:20px;">"sku": "579824",<br> | ||
<p style="padding-left:20px;">"price": "270.00",<br | <p style="padding-left:20px;">"name": "Бумага офисная LUX, А4, 80 г/м2, 500 л., марка С",<br> | ||
<p style="padding-left:20px;">"quantity": 25<br | <p style="padding-left:20px;">"barcode": "5963256889634",<br> | ||
<p style="padding-left:10px;">}<br | <p style="padding-left:20px;">"price": "270.00",<br> | ||
<p style="padding-left:10px;">],<br | <p style="padding-left:20px;">"quantity": 25<br> | ||
}<br | <p style="padding-left:10px;">}<br> | ||
<p style="padding-left:10px;">],<br> | |||
}<br> | |||
] | ] | ||
</div> | </div> |
Версия от 08:52, 26 апреля 2021
Приходящие в ПланФикс письма по E-mail можно разбирать, используя JSON. JavaScript Object Notation — это формат для хранения и обмена информацией, доступной для чтения человеком. Есть два основных элемента объекта JSON: ключи и значения.
Пример:
{"city":"New York", "country":"United States"}
- ключи — city и country;
- значения — New York и United States.
ПланФикс умеет разбирать письма в таком формате и добавлять нужные данные в инфоблоки. Для этого используется библиотека JsonPath.
Для отладки и устранения ошибок парсинга используйте специальный онлайн сервис: JSONPath Online Evaluator
Пример № 1: передаём в ПланФикс E-mail с текстом в формате JSON
- Для примера будем использовать такой JSON:
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
- Например, из JSON нам необходимы следующие данные:
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
- Настраиваем такое правило для разбора почты:
- Далее создаём нового клиента по шаблону, указываем какие значения полей из каких инфоблоков устанавливать и добавляем контакт в созданную из письма задачу:
- В итоге необходимые данные из письма в формате JSON переданы в ПланФикс:
Пример № 2: добавляем параметры JSON в аналитику ПланФикса
- Для примера будем использовать JSON, который формируется после заказа в интернет-магазине:
[
{
"site": "mysite.shop",
"name": "Елизавета Бояринцева",
"id": "6598634",
"date": "26.04.2021 09:16:05",
"status": "В работе",
"email": "liz82@gmail.com",
"phone": "+7 921 625-30-24",
"address": "Павла Усова 23, корпус 1",
"price_total": "13146.00",
"item_order": [
{
"sku": "598623",
"name": "Скрепки, 28 мм, металлические, 100 шт., в картонной коробке",
"barcode": "596325689126",
"price": "14.60",
"quantity": 10
},
{
"sku": "589624",
"name": "Бумага офисная CLASSIC, А4, 80 г/м2, 500 л., марка С",
"barcode": "5963256858963",
"price": "250.00",
"quantity": 25
},
{
"sku": "579824",
"name": "Бумага офисная LUX, А4, 80 г/м2, 500 л., марка С",
"barcode": "5963256889634",
"price": "270.00",
"quantity": 25
}
],
}
]