|   |   | 
| 
 | При записи JSON возвращает строку с символами "\r\n\" и др. | ☑ | ||
|---|---|---|---|---|
| 0
    
        OnePrg 23.06.22✎ 12:36 | 
        При попытке записать в одно из полей JSON JSON-строку в результирующей строке добавляет какие-то символы
 СтруктураPOSТ_Запрос = Новый Структура; СтруктураPOSТ_Запрос.Вставить("request",СтрокаJSON_Запрос); <-- нормальная строка JSON запроса (см. ниже) ЗаписатьJSON(ЗаписьJSON_POSТ_Запрос,СтруктураPOSТ_Запрос); POSТ_Запрос = ЗаписьJSON_POSТ_Запрос.Закрыть(); <-- в результирующей строке добавляются символы "\r\n\" и др. { "client": "49", "object": "order", "method": "create", "parameters": { "orders": [ { "product_order": "55555", "contact": "Иванов", "tel": "0502224455", "city": "Глухов", "adress": "ул.Садовая", "time": "12:00:00", "delivery_date": "30.06.2022", "naimenovanie": "электрика", "summa_oplaty": "1000.00", "summa_strahovki": "10.00", "ves": "2.0", "mest": "1", "primechanie": "без примечания", "id_service": "2", "id_status": "0", "TypesOfPayers": "Sender", "BackwardDelivery": "Recipient" } ] } } { "request": "{\r\n\"client\": \"49\",\r\n\"object\": \"order\",\r\n\"method\": \"create\",\r\n\"parameters\": {\r\n\"orders\": [\r\n{\r\n\"product_order\": \"55555\",\r\n\"contact\": \"Иванов\",\r\n\"tel\": \"0502224455\",\r\n\"city\": \"Глухов\",\r\n\"adress\": \"ул.Садовая\",\r\n\"time\": \"12:00:00\",\r\n\"delivery_date\": \"30.06.2022\",\r\n\"naimenovanie\": \"электрика\",\r\n\"summa_oplaty\": \"1000.00\",\r\n\"summa_strahovki\": \"10.00\",\r\n\"ves\": \"2.0\",\r\n\"mest\": \"1\",\r\n\"primechanie\": \"без примечания\",\r\n\"id_service\": \"2\",\r\n\"id_status\": \"0\",\r\n\"TypesOfPayers\": \"Sender\",\r\n\"BackwardDelivery\": \"Recipient\"\r\n}\r\n]\r\n}\r\n}" } | |||
| 1
    
        Кир Пластелинин 23.06.22✎ 12:45 | 
        заэкранировались символы вестимо     | |||
| 2
    
        OnePrg 23.06.22✎ 12:57 | 
        ЗаписатьJSON(ЗаписьJSON_Запрос,СтруктураЗапроса);
 СтрокаJSON_Запрос = СтрЗаменить(ЗаписьJSON_Запрос.Закрыть(),Символы.ПС,""); СтрокаJSON_Запрос = СтрЗаменить(СтрокаJSON_Запрос,Символы.ВК,""); СтрокаJSON_Запрос = СтрЗаменить(СтрокаJSON_Запрос,Символы.ВТаб,""); СтрокаJSON_Запрос = СтрЗаменить(СтрокаJSON_Запрос,Символы.НПП,""); СтрокаJSON_Запрос = СтрЗаменить(СтрокаJSON_Запрос,Символы.ПФ,""); СтрокаJSON_Запрос = СтрЗаменить(СтрокаJSON_Запрос,Символы.Таб,""); ЗаписьJSON_POSТ_Запрос = Новый ЗаписьJSON; ЗаписьJSON_POSТ_Запрос.ПроверятьСтруктуру = Ложь; ЗаписьJSON_POSТ_Запрос.УстановитьСтроку(); СтруктураPOSТ_Запрос = Новый Структура; СтруктураPOSТ_Запрос.Вставить("request",СтрокаJSON_Запрос); ЗаписатьJSON(ЗаписьJSON_POSТ_Запрос,СтруктураPOSТ_Запрос); POSТ_Запрос = ЗаписьJSON_POSТ_Запрос.Закрыть(); {"client": "49","object": "order","method": "create","parameters": {"orders": [{"product_order": "55555","contact": "Иванов","tel": "0502224455","city": "Глухов","adress": "ул.Садовая","time": "12:00:00","delivery_date": "30.06.2022","naimenovanie": "электрика","summa_oplaty": "1000.00","summa_strahovki": "10.00","ves": "2.0","mest": "1","primechanie": "без примечания","id_service": "2","id_status": "0","TypesOfPayers": "Sender","BackwardDelivery": "Recipient"}]}} { "request": "{\"client\": \"49\",\"object\": \"order\",\"method\": \"create\",\"parameters\": {\"orders\": [{\"product_order\": \"55555\",\"contact\": \"Иванов\",\"tel\": \"0502224455\",\"city\": \"Глухов\",\"adress\": \"ул.Садовая\",\"time\": \"12:00:00\",\"delivery_date\": \"30.06.2022\",\"naimenovanie\": \"электрика\",\"summa_oplaty\": \"1000.00\",\"summa_strahovki\": \"10.00\",\"ves\": \"2.0\",\"mest\": \"1\",\"primechanie\": \"без примечания\",\"id_service\": \"2\",\"id_status\": \"0\",\"TypesOfPayers\": \"Sender\",\"BackwardDelivery\": \"Recipient\"}]}}" } Как флеш убрать? | |||
| 3
    
        dmt 23.06.22✎ 13:28 | 
        ЗаписатьБезОбработки()     | |||
| 4
    
        arsik гуру 23.06.22✎ 13:45 | 
        (0) Ты неправильно json формируешь. Ты в объектjson вставляешь строку и думаешь, что получится json?
 Самое простое сделать структуру или массив и ее в json сериализовать. Примерно так: стр = Новый Структура("client,object,method,parameters",
 | |||
| 5
    
        arsik гуру 23.06.22✎ 13:47 | 
        Ошибочка 
 неправильно - стр.parameters.Добавить(Новый Структура("product_order,contact","55555","Иванов")); правильно - стр.parameters.orders.Добавить(Новый Структура("product_order,contact","55555","Иванов")); | |||
| 6
    
        arsik гуру 23.06.22✎ 13:53 | 
        +(5) еще ошибка есть.
 Вот так правильно: стр = Новый Структура("client,object,method,parameters","49","order","create", Новый Структура("orders", Новый Массив));
 | |||
| 7
    
        arsik гуру 23.06.22✎ 13:57 | 
        +(6) :)
 стр = Новый Структура("request");
 | |||
| 8
    
        dmt 23.06.22✎ 14:18 | 
        (7) Телепатирую, что у ТС уже есть строка жсон, так что придется ему либо использовать ЗаписатьБезОбработки, либо сначала десериализовать свою строку в структуру, затем вставить ее в структуру-владельца и только потом сериализовать в итоговый жсон     | |||
| 9
    
        OnePrg 23.06.22✎ 14:19 | 
        (3) не нахожу такого метода у JSON     | |||
| 10
    
        arsik гуру 23.06.22✎ 14:25 | 
        (8) Нету у него. Он как раз собирает ее для ответа. Но добавляет объект request как строку.     | |||
| 11
    
        dmt 23.06.22✎ 14:26 | 
        (9) 
 ЗаписьJSON (JSONWriter) ЗаписатьБезОбработки (WriteRaw) Синтаксис: ЗаписатьБезОбработки(<Строка>) Параметры: <Строка> (обязательный) Тип: Строка. Строка, записываемая в документ JSON. Описание: Выполняет запись произвольной строки в документ, при этом проверка структуры документа не выполняется. Если при использовании метода свойство ПроверятьСтруктуру установлено в значение Истина, то проверка структуры продолжается на следующем элементе. Доступность: Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Пример: ЗаписьJSON = Новый ЗаписьJSON; // Запись документа JSON ЗаписьJSON.ЗаписатьБезОбработки("Просто строка"); | |||
| 12
    
        OnePrg 23.06.22✎ 14:33 | 
        (7) Спасибище, друг - то, что нужно.
 Всем спасибо. | |||
| 13
    
        OnePrg 23.06.22✎ 14:37 | 
        стоп, стоп, стоп ....
 с символами разобрались НО! "в параметр rtequest должна быть передана строка, не объект JSON" как это выполнить? | |||
| 14
    
        arsik гуру 23.06.22✎ 15:01 | 
        (13) Возможно ты что то не понимаешь в сервисе. Покажи, пример, что должно быть в итоге. Лучше не свое, а из мануала, того, по которому делаешь.     | |||
| 15
    
        arsik гуру 23.06.22✎ 15:05 | 
        (13) Если ты все же хочешь передавать строку, то подумай, как на той стороне поймут как распарсить эту строку без символов экранирования?     | |||
| 16
    
        Кир Пластелинин 23.06.22✎ 15:15 | 
        (13) скорей всего в заголовках указать соответствующий content type     | |||
| 17
    
        OnePrg 23.06.22✎ 15:18 | 
        (14) 
 const requestData = { client: '123', object: 'order', method: 'create', parameters: { orders: [ product-order: '12345', contact: 'recipient пане', tel: '+380441234567', city: 'kiev', adress: 'some address', time: 'delivery time', delivery-date: '01.02.2018', naimenovanie: 'some description', summa_oplaty: 200, summa_strahovki: 200, ves: 2.5, mest: 1, primechanie : 'some note', id.service: 1, id-status: 1, nomenklatura: [ {id: 15, amount: З}, {id: 123, amount: 1} ] ] }; const params = new FormDataO; const requestDataJSON = JSON.stringify(requestData); params.append('request', requestDataJSON); //в параметре request должна быть строка (не объект) в виде JSON params.append('sign', 'concatenated requestDataJSON with key and encoded in MD5'); request.send(params); | |||
| 18
    
        arsik гуру 23.06.22✎ 15:24 | 
        Ну попробуй вот так
 стр = Новый Структура("client,object,method,parameters","49","order","create", Новый Структура("orders", Новый Массив));
 | |||
| 19
    
        OnePrg 23.06.22✎ 15:26 | 
        Структура = Новый Структура("client,object,method,parameters","49","order","create", Новый Структура("orders", Новый Массив));
 СтруктураЗаказа = Новый Структура; СтруктураЗаказа.Вставить("product_order","55555"); //(required) – номер заказа СтруктураЗаказа.Вставить("contact","Иванов"); //(required) – фио получателя ... Структура.parameters.orders.Добавить(СтруктураЗаказа); ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.ПроверятьСтруктуру = Ложь; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, Структура); Строка_request = ЗаписьJSON.Закрыть(); //nomenklatura – массив подвязанной номенклатуры: // id – id номенклатуры // amount – количество в заказе по номенклатуре ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.ПроверятьСтруктуру = Ложь; ЗаписьJSON.УстановитьСтроку(); СтруктураГлавная = Новый Структура; СтруктураГлавная.Вставить("request",Строка_request); ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5); ХешированиеДанных.Добавить(Строка_request+api_ключ); СтруктураГлавная.Вставить("sign",СтрЗаменить(НРег(СокрЛП(ХешированиеДанных.ХешСумма))," ","")); ЗаписатьJSON(ЗаписьJSON, СтруктураГлавная); POSТ_Запрос_Строка = ЗаписьJSON.Закрыть(); { "request": "{\r\n\"client\": \"49\",\r\n\"object\": \"order\",\r\n\"method\": \"create\",\r\n\"parameters\": {\r\n\"orders\": [\r\n{\r\n\"product_order\": \"55555\",\r\n\"contact\": \"Иванов\",\r\n\"tel\": \"0502224455\",\r\n\"city\": \"Глухов\",\r\n\"adress\": \"ул.Садовая\",\r\n\"time\": \"12:00:00\",\r\n\"delivery_date\": \"30.06.2022\",\r\n\"naimenovanie\": \"электрика\",\r\n\"summa_oplaty\": \"1000.00\",\r\n\"summa_strahovki\": \"10.00\",\r\n\"ves\": \"2.0\",\r\n\"mest\": \"1\",\r\n\"primechanie\": \"без примечания\",\r\n\"id_service\": \"2\",\r\n\"id_status\": \"0\",\r\n\"TypesOfPayers\": \"Sender\",\r\n\"BackwardDelivery\": \"Recipient\"\r\n}\r\n]\r\n}\r\n}", "sign": "b139773............." } | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |