Показать сообщение отдельно
  #1  
Старый 09.02.2021, 10:38
pikabu pikabu вне форума
Прохожий
 
Регистрация: 27.12.2017
Сообщения: 30
Версия Delphi: 10.1
Репутация: 10
По умолчанию Сформировать json из данных

Пытаюсь сделать пост запрос с json.
Сам по себе запрос понятен, если статично делать, то-бишь сразу прописать весь текст Json.
Но цель добавлять данные в json из списка listview автоматически.

Структура json
PHP код:
"name": "000001",
            
"organization": {
              
"meta": {
                
"href": "https://link",
                
"type": "organization",
                
"mediaType": "application/json"
              
}
            
"positions": [
              {
                
"quantity": 1,
                
"price": 100,
                
"assortment": {
                  
"meta": {
                    
"href": "https://link/be903062-f504-11e5-8a84-bae50000019a",
                    
"type": "product",
                    
"mediaType": "application/json"
                  
}
                },
                
"reserve": 1
              
},
            ] 
Из которой следует:
В "positions" - находится определенная позиция, где:
"quantity" - кол-во
"price": - цена
"href" - ссылка на нужную позицию.

В своем списке я имею структуру итемов, где есть все необходимые данные, данные всегда разные, может быть больше, может быть меньше.

Пример содержания listview.

Собственно вопрос, как сформировать Json исходя из того, что есть в данный момент в listview?

Из примера выше Json должен получиться примерно таким:
PHP код:
"name": "000001",
            
"organization": {
              
"meta": {
                
"href": "https://link",
                
"type": "organization",
                
"mediaType": "application/json"
              
}
            
"positions": [
              {
                
"quantity": 1,
                
"price": 50,
                
"assortment": {
                  
"meta": {
                    
"href": "https://link/blablalink1",
                    
"type": "product",
                    
"mediaType": "application/json"
                  
}
                },
                
"reserve": 1
              
},
            ]
            
"positions": [
              {
                
"quantity": 5,
                
"price": 140,
                
"assortment": {
                  
"meta": {
                    
"href": "https://link/blablalink2",
                    
"type": "product",
                    
"mediaType": "application/json"
                  
}
                },
                
"reserve": 5
              
},
            ]
            
"positions": [
              {
                
"quantity": 7,
                
"price": 99,
                
"assortment": {
                  
"meta": {
                    
"href": "https://link/blablalink3",
                    
"type": "product",
                    
"mediaType": "application/json"
                  
}
                },
                
"reserve": 7
              
},
            ] 
Ответить с цитированием