Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Скобки в json

Скобки в json
Я
   ДядяМитяй
 
05.07.18 - 15:51
Довольно глупая ситуация. Вот у меня код (для примера)

    
    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписьJSON.ЗаписатьНачалоМассива();
    
    счД = 1;
    Пока ВыборкаДог.Следующий() Цикл 
        
        НомерДог = Строка(ВыборкаДог.Contract.Номер);
        ДатаДог = Строка(ВыборкаДог.Contract.Дата);

        
        
        ЗаписьJSON.ЗаписатьНачалоОбъекта();
        ЗаписьJSON.ЗаписатьИмяСвойства("ContractNumber" + Строка(СчД));
        ЗаписьJSON.ЗаписатьЗначение(НомерДог);
        
        ЗаписьJSON.ЗаписатьИмяСвойства("ContractDate" + Строка(СчД));
        ЗаписьJSON.ЗаписатьЗначение(ДатаДог);
        ЗаписьJSON.ЗаписатьКонецОбъекта();

        счД = счД + 1;
    КонецЦикла;
    
        ЗаписьJSON.ЗаписатьКонецМассива();
        СтрJ = ЗаписьJSON.Закрыть();


Возвращает такое:

[
    {
        "ContractNumber1": "XC000265Y",
        "ContractDate1": "10.08.2013 0:00:00"
    },
    {
        "ContractNumber2": "XC01691LY",
        "ContractDate2": "10.06.2018 0:00:00"
    }
]


Как мне все это заключить в еще одни фигурные скобки - без лишних символов? Если добавить еще начало и конец объекта, то требуется установить его свойство и получается что-то вроде { "":[
а надо {[
 
 
   Fram
 
1 - 05.07.18 - 15:53
Кому надо?
   Kigo_Kigo
 
2 - 05.07.18 - 15:55
Узнать код символа и вставить как Текс + Симв(КодСимвола) + текст + Симв(КодСимвола) и так далее
   Скиурус
 
3 - 05.07.18 - 15:57
>>а надо {[
Я взял твой пример и заключил его в фигурные скобки. И валидотор JSON сказал мне, что "Invalid JSON format!! Unable to process your request."

Поэтому очевидный ответ: раз надо, значит сделай "{" + МойКодJSON + "}"
   arsik
 
4 - 05.07.18 - 15:58
Сделай сначала
ЗаписатьНачалоОбъекта()
а уже потом все остальное.
Объект в фигурных скобках, массив в квадратных. Тебе объект передать надо
   ДядяМитяй
 
5 - 05.07.18 - 16:05
(4) Вот. Я про это и спрашивал. Если началообъекта сделать, то обязательно за этим ЗаписатьИмяСвойства(). И вставляется двоеточие.
(1) "принимающей стороне". разработчику сайта.
   Fram
 
6 - 05.07.18 - 16:07
(5) принимающая сторона в курсе что это уже не json получится?
   Мыш
 
7 - 05.07.18 - 16:09
(5) Делай обертку в скобки после выгрузки текста.
   ДядяМитяй
 
8 - 05.07.18 - 16:53
(6) Да, я ей уже сообщил))) Сам в валидаторе проверил.
   ДядяМитяй
 
9 - 05.07.18 - 16:57
(7) Это понятно. Я думал штатными средствами все сделать, чтоб красиво и опрятно. А меня, похоже, просто в заблуждение ввели.
Можно тему закрывать.
   Chameleon1980
 
10 - 06.07.18 - 05:05
может Массив в Массиве попробовать в Json что будет?
 
 Рекламное место пустует
   Chameleon1980
 
11 - 06.07.18 - 05:08
без начать и закончить, а ЗаписатьJson
   Chameleon1980
 
12 - 06.07.18 - 05:08
ой. т.е. у тебя получится массив структур
   Chameleon1980
 
13 - 06.07.18 - 05:15
&НаКлиенте
Процедура СформироватьФайл(Команда)

    ЗаписьJSon=Новый ЗаписьJSON;
    
    ЗаписьJSon.ОткрытьФайл("d:\MS.json");
    
    МассивСтруктур=Новый Массив;
    
    СтруктураДанных=Новый Структура("Поле1, Поле2");
    
    СтруктураДанных.Поле1="Значение поля 1";
    СтруктураДанных.Поле2="Значение полня 2";
    
    МассивСтруктур.Добавить(СтруктураДанных);
    
    СтруктураДанных.Поле1="Новое значение поля 1";
    СтруктураДанных.Поле2="Новое значение поля 2";
    
    МассивСтруктур.Добавить(СтруктураДанных);
    
    ЗаписатьJSON(ЗаписьJSon, МассивСтруктур);
    
    ЗаписьJSon.Закрыть();
    
КонецПроцедуры


[
{
"Поле1": "Новое значение поля 1",
"Поле2": "Новое значение поля 2"
},
{
"Поле1": "Новое значение поля 1",
"Поле2": "Новое значение поля 2"
}
]



аааа. тебе фигурные нужно а не хвадратные.
   Chameleon1980
 
14 - 06.07.18 - 05:18
тебе типа структуры в структуре нужно, наверное
только без имени поля
   Chameleon1980
 
15 - 06.07.18 - 05:22
ооо
   Chameleon1980
 
16 - 06.07.18 - 05:26
НастройкиСериализацииJSON.СериализовыватьМассивыКакОбъекты (JSONSerializerSettings.SerializeArraysAsObjects)
НастройкиСериализацииJSON (JSONSerializerSettings)
СериализовыватьМассивыКакОбъекты (SerializeArraysAsObjects)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Если свойство имеет значение Истина, то массив будет сериализован как объект JSON следующего вида:
{
"1":"Значение1",
"2":"Значение2",
"3":"Значение3"
}
Если свойство имеет значение Ложь, то массив будет записан как массив JSON.

блин. тоже не так.

{
"0": {
"Поле1": "Новое значение поля 1",
"Поле2": "Новое значение поля 2"
},
"1": {
"Поле1": "Новое значение поля 1",
"Поле2": "Новое значение поля 2"
},
"2": {
"Поле1": "Новое значение поля 1",
"Поле2": "Новое значение поля 2"
},
"3": {
"Поле1": "Новое значение поля 1",
"Поле2": "Новое значение поля 2"
}
}

свое писать. только кто поймет потом эту строку?
   Chameleon1980
 
17 - 06.07.18 - 05:28
+ попробуй для своего кода
в
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);

указать СериализовыватьМассивыКакОбъекты в истину

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует