Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / чет не пойму как из поля c json вытащить данные... / 7 сообщений из 7, страница 1 из 1
06.07.2017, 10:59
    #39483629
сникерс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
Короч, есть поле, там такие данные а внутри данных еще данные.

и как эти данные что внутри - не знаю как вытащить.
...
Рейтинг: 0 / 0
06.07.2017, 11:03
    #39483637
сникерс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
Вот такие данные:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{ "data" : 
{ "rec" : 
{ "snfn" : "99098001002891", "kktno" : "000000000050003    ", "iur" : "48471  ", "fdno" : 11114707, "dt" : 
{ "$date" : "2012-06-29T16:14:00.000+0000" }, "fpd" : 
{ "$binary" : "MQhkjhkjJyk", "$type" : "00" }, "shftno" : 216, "prtxs" : [ 1 ], 
"data_inside" : [ 
{ "nt" : "Бензин АИ-95", "cost" : 319, "amt" : "2.000", "nds18" : 97, "ctot" : 638 }, 
{ "nt" : "Тряпка для стекла", "cost" : 34899, "amt" : "1.000", "nds18" : 5324, "ctot" : 34899 }, 
{ "nt" : "Коньяк СТАРЫЙ ПЕД росс 0.375L", "cost" : 48366, "amt" : "1.000", "nds18" : 7378, "ctot" : 48366 }, 
{ "nt" : "Пиво ДУБ И ОБРУЧ св 4,9% ПЭТ 1.5L", "cost" : 12799, "amt" : "1.000", "nds18" : 1952, "ctot" : 12799 } ] } } }




Как вытащить nt ?
...
Рейтинг: 0 / 0
06.07.2017, 11:48
    #39483693
sereginseregin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
Функции и операторы JSON

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT ('
	{ "data" : 
			{ "rec" : 
				{ "snfn" : "99098001002891", "kktno" : "000000000050003    ", "iur" : "48471  ", "fdno" : 11114707
				, "dt" :{ "$date" : "2012-06-29T16:14:00.000+0000" }
				, "fpd" :{ "$binary" : "MQhkjhkjJyk", "$type" : "00" }, "shftno" : 216, "prtxs" : [ 1 ]
				, "data_inside" : [ 
							{ "nt" : "Бензин АИ-95", "cost" : 319, "amt" : "2.000", "nds18" : 97, "ctot" : 638 }, 
							{ "nt" : "Тряпка для стекла", "cost" : 34899, "amt" : "1.000", "nds18" : 5324, "ctot" : 34899 }, 
							{ "nt" : "Коньяк СТАРЫЙ ПЕД росс 0.375L", "cost" : 48366, "amt" : "1.000", "nds18" : 7378, "ctot" : 48366 }, 
							{ "nt" : "Пиво ДУБ И ОБРУЧ св 4,9% ПЭТ 1.5L", "cost" : 12799, "amt" : "1.000", "nds18" : 1952, "ctot" : 12799 } 
							] 
				} 
			}
	}'::JSON)->'data'->'rec'->'data_inside'->1->>'nt'
...
Рейтинг: 0 / 0
06.07.2017, 11:48
    #39483694
Rhim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
сникерс,

У вас data_inside массив, подставьте свои ключи.

Код: plsql
1.
SELECT ('{"aa": 1, "b": [{"ab": 96, "bb": 76}] }')::json#>'{b,0}'->'ab';


https://www.postgresql.org/docs/9.5/static/functions-json.html
...
Рейтинг: 0 / 0
06.07.2017, 12:12
    #39483717
сникерс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
Ребята, спасибо большое, я два часа про... мучился и никак не мог этот массав достать!
...
Рейтинг: 0 / 0
06.07.2017, 15:59
    #39483929
сникерс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
А скажите, можно как-нибудь узнать заранее сколько элементов в этом массиве?

В разных записях может быть разное просто.
...
Рейтинг: 0 / 0
06.07.2017, 16:24
    #39483950
sereginseregin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чет не пойму как из поля c json вытащить данные...
Лентяй!!!

sereginseregin Функции и операторы JSON

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT json_array_length(('
	{ "data" : 
			{ "rec" : 
				{ "snfn" : "99098001002891", "kktno" : "000000000050003    ", "iur" : "48471  ", "fdno" : 11114707
				, "dt" :{ "$date" : "2012-06-29T16:14:00.000+0000" }
				, "fpd" :{ "$binary" : "MQhkjhkjJyk", "$type" : "00" }, "shftno" : 216, "prtxs" : [ 1 ]
				, "data_inside" : [ 
							{ "nt" : "Бензин АИ-95", "cost" : 319, "amt" : "2.000", "nds18" : 97, "ctot" : 638 }, 
							{ "nt" : "Тряпка для стекла", "cost" : 34899, "amt" : "1.000", "nds18" : 5324, "ctot" : 34899 }, 
							{ "nt" : "Коньяк СТАРЫЙ ПЕД росс 0.375L", "cost" : 48366, "amt" : "1.000", "nds18" : 7378, "ctot" : 48366 }, 
							{ "nt" : "Пиво ДУБ И ОБРУЧ св 4,9% ПЭТ 1.5L", "cost" : 12799, "amt" : "1.000", "nds18" : 1952, "ctot" : 12799 } 
							] 
				} 
			}
	}'::JSON)->'data'->'rec'->'data_inside')
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / чет не пойму как из поля c json вытащить данные... / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]