JSONPath: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
Строка 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;">{<br/>
<p style="padding-left:10px;">{</p>
<p style="padding-left:20px;">"sku": "598623",<br/>
<p style="padding-left:20px;">
<p style="padding-left:20px;">"name": "Скрепки, 28 мм, металлические, 100 шт., в картонной коробке",<br/>
"sku": "598623",<br>
<p style="padding-left:20px;">"barcode": "596325689126",<br/>
"name": "Скрепки, 28 мм, металлические, 100 шт., в картонной коробке",<br>
<p style="padding-left:20px;">"price": "14.60",<br/>
"barcode": "596325689126",<br>
<p style="padding-left:20px;">"quantity": 10<br/>
"price": "14.60",<br>
<p style="padding-left:10px;">},<br/>
"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"

]

}


  • Настраиваем такое правило для разбора почты:

MlwbbU.png


  • Далее создаём нового клиента по шаблону, указываем какие значения полей из каких инфоблоков устанавливать и добавляем контакт в созданную из письма задачу:

tAO0Xf.png


  • В итоге необходимые данные из письма в формате JSON переданы в ПланФикс:

Cgieo4.png


Пример № 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

}

],
}
]


Перейти