B4J Question Building a Json Tree error

Discussion in 'B4J Questions' started by TomDuncan, Jul 19, 2019.

  1. TomDuncan

    TomDuncan Active Member Licensed User

    Hi All.

    What I am trying to do is import the values from a Json file into a database, then as needed export the Json file in the same order. The software I am using only likes the Json in a specific order.

    I am trying to build a json file from a database.

    Here is the final code..

    Code:
    Dim final As Map
        final.Initialize
        final.Put(
    "operators",operators)
        
    Log(final)
        
    Dim jgen As JSONGenerator
        jgen.Initialize(final) 
    ' (CreateMap("operators": operators))
        Dim st As String = jgen.ToPrettyString(3)
        st = st.Replace(
    $"\"$,"")
        st = st.Replace(
    $""""$,$"""$)
        
    Log(st)
    Here is a copy of the final map and the resultant code.
    I have had to take out back slashes and extra double quotes. (no idea my error)

    Code:
    Waiting for value (2 ms)
    (MyMap) {operators={id_01={top=
    20, left=60, properties={title=Light Switch, inputs={}, outputs={"output_1"="On/Off"}}}, id_02={top=60, left=820, properties={title=Operator 2, inputs={"input_1"="In 1", "input_2"="In 2"}, outputs={}}}, id_03={top=220, left=260, properties={title=Operator 3, inputs={"input_1"="In 1"}, outputs={"output_1"="Out 1"}}}, id_04={top=140, left=560, properties={title=Operator 4, inputs={"input_1"="In 1"}, outputs={"output_1"="Out 1"}}}}}
    {
       "operators": {
          "id_02": {
             "top": 60,
             "left": 820,
             "properties": {
                "outputs": {},
                "inputs": {
                   "input_2": "In 2",
                   "input_1": "In 1"
                },
                "title": "Operator 2"
             }
          },
          "id_03": {
             "top": 220,
             "left": 260,
             "properties": {
                "outputs": {
                   "output_1": "Out 1"
                },
                "inputs": {
                   "input_1": "In 1"
                },
                "title": "Operator 3"
             }
          },
          "id_01": {
             "top": 20,
             "left": 60,
             "properties": {
                "outputs": {
                   "output_1": "On/Off"
                },
                "inputs": {},
                "title": "Light Switch"
             }
          },
          "id_04": {
             "top": 140,
             "left": 560,
             "properties": {
                "outputs": {
                   "output_1": "Out 1"
                },
                "inputs": {
                   "input_1": "In 1"
                },
                "title": "Operator 4"
             }
          }
       }
    }
    What happens is that the order of the json code output is not in the same order as the maps.
    Things like "title" is the first under properties and the order of the id's is incorrect.

    Any thoughts on what I am doing wrong.

    Tom
     
    Last edited: Jul 19, 2019
  2. Erel

    Erel Administrator Staff Member Licensed User

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice