Имя: Пароль:
1C
 
JSON Массив внутри массива
,
0 rowvg
 
naïve
08.10.21
15:15
Подскажите, как в 1C создать такой JSON

{
  "items": [
    {
      "attributes": [
        {
          "values": [
            {
              "dictionary_value_id": 0,
              "value": "string"
            }
          ]
        }
      ]
    }
  ]
}
1 ДенисЧ
 
08.10.21
15:18
Запихнуть в структутру как надо и ЗаписатьJSON()
2 polosov
 
08.10.21
15:19
(0) Десериализуй эту строку и получишь как это выглядит в типах 1С.
3 GANR
 
08.10.21
15:22
4 Ёпрст
 
08.10.21
15:25
(0) Структура, элементами - массив, в массиве структура, в структуре массив..это если вложенность
затем Записатьjson
5 rowvg
 
naïve
08.10.21
15:26
(1) Прием со структурой мне известен. Классические способы есть? На ИТС ничего не нашел.
6 ДенисЧ
 
08.10.21
15:30
(5) А это и есть классический.
Или ты под "классикой" понимаешь симфонию Сяо Ли Юнь из эпохи Цинь?
7 rowvg
 
naïve
08.10.21
15:32
(6) В моем понимании классика для решения таких задач - это функциональное программирование.
8 ДенисЧ
 
08.10.21
15:33
(7) Извини, в 1с его пока не завезли.
9 Kassern
 
08.10.21
15:39
(0) Фигурная скобка это объект, квадратная - массив
10 Garykom
 
гуру
08.10.21
15:40
СтрЗаменить вполне функционально ))
11 trad
 
08.10.21
15:43
(7) а как бы выглядел алгоритм записи в JSON просто массива (без массива внутри) в классическом понимании?
12 rowvg
 
naïve
08.10.21
15:43
(11) примерно так же как в LinqToXml
13 polosov
 
08.10.21
15:44
(11) Пока играет классический Шопен, вызывается ФУНКЦИЯ СделатьJSON, которая возвращает классический результат.
14 polosov
 
08.10.21
15:46
(12) Тю, что ж ты сразу не сказал. Есть у нас способ вызывать богомерский С#. Поищи тут.
15 lodger
 
08.10.21
15:47
(7)
вот функциональный Elixir, который выдает жсончики.

defmodule AtvApi.GrntiControllerTest do
  use AtvApi.ConnCase

  import AtvApi.Factory

  setup %{conn: conn, id: id} do
    insert_all(:grnti)

    conn = conn
           |> put_req_header("accept", "application/json")
           |> get(grnti_path(conn, :show, id))

    {:ok, conn: conn}
  end

  describe "Controller must return descendants of" do

    setup %{id: id} do
      descendants = :grnti
                     |> get_descendants(id)
                     |> Poison.encode!
                     |> Poison.decode!

      {:ok, descendants: descendants}
    end

    tag id: -1
    test "the root level", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end

    tag id: 000000
    test "the chapter with id: 000000", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end

    tag id: 020000
    test "the chapter with id: 020000", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end

    tag id: 030000
    test "the chapter with id: 030000", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end

    tag id: 000900
    test "the chapter with id: 000900", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end

    tag id: 021500
    test "the chapter with id: 021500", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end

    tag id: 032300
    test "the chapter with id: 032300", %{conn: conn, descendants: descendants} do
      assert json_response(conn, 200)["data"] == descendants
    end
  end
end


чем это радикально отличается от http://v8.1c.ru/o7/201410json/4.png
?
16 Сияющий Асинхраль
 
08.10.21
15:56
В первом приближении вот так:

    ЗаписьJSON = Новый ЗаписьJSON;
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ЗаписьJSON.ЗаписатьИмяСвойства("items");
    ЗаписьJSON.ЗаписатьНачалоМассива();
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ЗаписьJSON.ЗаписатьИмяСвойства("attributes");
    
    ЗаписьJSON.ЗаписатьНачалоМассива();
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ЗаписьJSON.ЗаписатьИмяСвойства("values");
    
    ЗаписьJSON.ЗаписатьНачалоМассива();
    
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
    
    ЗаписьJSON.ЗаписатьИмяСвойства("dictionary_value_id");
    ЗаписьJSON.ЗаписатьЗначение(0);
    
    ЗаписьJSON.ЗаписатьИмяСвойства("value");
    ЗаписьJSON.ЗаписатьЗначение("string");
    
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    
    ЗаписьJSON.ЗаписатьКонецМассива();
    
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    
    ЗаписьJSON.ЗаписатьКонецМассива();
    
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    
    ЗаписьJSON.ЗаписатьКонецМассива();
    ЗаписьJSON.ЗаписатьКонецОбъекта();
    
    ЗаписьJSON.Закрыть();
17 rowvg
 
naïve
08.10.21
16:08
(16) Спасибо большое
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший