powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите обработать json пожалуйста
7 сообщений из 7, страница 1 из 1
помогите обработать json пожалуйста
    #39996494
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
declare @ResVal nvarchar(max)
set @ResVal=N'{ 
     "user" : {
        "firstName" : "John", 
        "lastName" : "Smith", 
        "phoneNumber" : "3838 28282 22", 
        "email" : "contact@oysterbar.la"
    }, 
    "outlet" : {
        "eid" : "*5514300", 
        "salesOrg" : "2040", 
        "name" : "Пятерочка РЦ"
    }, 
    "cart" : {
        "eid" : "b08a4fde-5350-4022-9b2a-e11a4414332d", 
        "total" : {
            "value" : "390000", 
            "differentItems" : 2, 
            "totalProducts" : 4
        }, 
        "items" : [
            {
                "salesOrg" : "2040", 
                "sku" : "=272440", 
                "name" : "=272440", 
                "quantity" : 2, 
                "type" : "BEER", 
                "price" : {
                    "base" : "1400", 
                    "total" : "2800"
                }, 
                "productPackage" : {
                    "unit" : "ea", 
                    "type" : "ea", 
                    "size" : "ea"
                }
            },
            {
                "salesOrg" : "2040", 
                "sku" : "=532430", 
                "name" : "=532430", 
                "quantity" : 1, 
                "type" : "BEER", 
                "price" : {
                    "base" : "110000", 
                    "total" : "110000"
                }, 
                "productPackage" : {
                    "unit" : "ea", 
                    "type" : "ea", 
                    "size" : "ea"
                }
            }
        ], 

    }, 
    "deliveryDate" : "2020-01-01T00:00:00.000+0000"  //COMMENT:  it is ISODate
    "distributor" : {
        "eid" : "CD-BLX-0006", 
        "salesOrg" : "2040", 
        "name" : "AS&D Paksan"
    }, 
    "shippingAddress" : {
        "eid" : "eid", 
        "address" : "PO Box 3556, Lanexang Avenue", 
        "city" : "Vientiane, Laos", 
        "zipCode" : "2032-2230"
    }, 
    "comments" : "free text field", 
    "orderNumber" : "067d555e-ede1-4d0c-96f2-7d1d10bdf4aa", 
    "salesOrg" : "2040", 
    "creationDate" : "2020-04-24T09:31:14.824+0000",  //COMMENT:  it is ISODate
    "orderStatus" : "Accepted"
}
'
select a.*
from openjson(@ResVal,'$.cart')  with (eid uniqueidentifier, total nvarchar(max), item nvarchar(max) as json) a



я в json-e новичок, не бейте сильно
пытаюсь получить хоть что-нибудь, запрос выдаёт JSON text is not properly formatted. Unexpected character '}' is found at position 1568. где эта фигурная скобка, и почему текст json неверно отформатирован, не понимаю, помогите пожалуйста. То ли действительно json кривой, то ли я что-то не понимаю
...
Рейтинг: 0 / 0
помогите обработать json пожалуйста
    #39996499
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenz,

Сервер врать не будет. Можно проверить, например, тут https://jsoneditoronline.org
...
Рейтинг: 0 / 0
помогите обработать json пожалуйста
    #39996516
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenz,

что у вас за комментарии такие?

Код: sql
1.
"deliveryDate" : "2020-01-01T00:00:00.000+0000"  //COMMENT:  it is ISODate



в json такие конструкции не допустимы.

дополнительно: лишний разделитель элементов после окончания массива:

Код: sql
1.
2.
3.
4.
5.
6.
7.
  "productPackage" : {
                    "unit" : "ea", 
                    "type" : "ea", 
                    "size" : "ea"
                }
            }
        ],  --вот тут




не хватает запятой вот тут:
Код: sql
1.
"deliveryDate" : "2020-01-01T00:00:00.000+0000" 
...
Рейтинг: 0 / 0
помогите обработать json пожалуйста
    #39996532
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое!
...
Рейтинг: 0 / 0
помогите обработать json пожалуйста
    #39997535
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
declare @OrderDoc nvarchar(max)
set @OrderDoc=N'{      
	"user" : {        "firstName" : "John",         "lastName" : "Smith",         "phoneNumber" : "3838 28282 22",         "email" : "contact@oysterbar.la"    },     
	"outlet" : {        "eid" : "*5514300",        "salesOrg" : "2040",        "name" : "Пятерочка РЦ"    }, 
    "cart" : {        
			"eid" : "b08a4fde-5350-4022-9b2a-e11a4414332d",         
			"total" : {            "value" : "390000",             "differentItems" : 2,             "totalProducts" : 4        }, 
			"items" : [           
			{                 
				"salesOrg" : "2040",                 
				"sku" : "=272440",                 
				"name" : "=272440",                 
				"quantity" : 2,                 
				"type" : "BEER",                 
				"price" : {                    
					"base" : "1400",                     
					"total" : "2800"                
					},                 
				"productPackage" : 
				{                    
					"unit" : "ea",                     
					"type" : "ea",                     
					"size" : "ea"               
                 }            
			},      
            {                
				"salesOrg" : "2040",                 
				"sku" : "=532430",                 
				"name" : "=532430",                 
				"quantity" : 1,                 
				"type" : "BEER",                 
				"price" : 
				{                   
					"base" : "110000",                     
					"total" : "110000"                
				},                 
				"productPackage" : 
				{                   
				"unit" : "ea",                     
				"type" : "ea",                     
				"size" : "ea"                
				}
            }                  
			]    
	} , 
    "deliveryDate" : "2020-01-01T00:00:00.000+0000" ,  
    "distributor" : {
        "eid" : "CD-BLX-0006", 
        "salesOrg" : "2040", 
        "name" : "AS&D Paksan"
    }, 
    "shippingAddress" : {
        "eid" : "eid", 
        "address" : "PO Box 3556, Lanexang Avenue", 
        "city" : "Vientiane, Laos", 
        "zipCode" : "2032-2230"
    }, 
    "comments" : "free text field", 
    "orderNumber" : "067d555e-ede1-4d0c-96f2-7d1d10bdf4aa", 
    "salesOrg" : "2040", 
    "creationDate" : "2020-04-24T09:31:14.824+0000",   
    "orderStatus" : "Accepted"
}


'
select 1 CRMOrderNumber, 
	cast(left(a.creationDate,10) as date) CRMOrderDate, 
	json_value(c.price, '$.base') GrossPrice, 
	c.quantity Quantity, 
	json_value(c.productPackage, '$.unit') UnitId, 
	c.sku WareId,
	row_number() over(order by c.sku) + (select top 1 LineNumber from CRMOrderLine order by LineNumber desc) as LineNumber
from openjson(@OrderDoc,'$')  with (cart nvarchar(max) as json, orderNumber uniqueidentifier, creationDate varchar(50), deliveryDate varchar(50)) as a
cross apply openjson(@OrderDoc,'$.cart') with(items nvarchar(max) as json) b
cross apply openjson(b.items, '$') with (quantity int, price nvarchar(max) as json, productPackage nvarchar(max) as json, sku varchar(15)) c



господа, подскажите пожалуйста, а чего так туго с перформансом?

этот запрос, чтобы 2 записи вытащить 12 минут крутился
...
Рейтинг: 0 / 0
помогите обработать json пожалуйста
    #39997562
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenz,

и сколько у вас там строк в таблице? :
Код: sql
1.
(select top 1 LineNumber from CRMOrderLine order by LineNumber desc) as LineNumber
...
Рейтинг: 0 / 0
помогите обработать json пожалуйста
    #39997567
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот блин, извиняюсь, даа.... спасибо, там строк немало... на нем сидели
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите обработать json пожалуйста
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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