How can I create an object to store hierarchical data from JSON?

  • 0
    Please tell me.
    There is an object like:
    [
      {
        "key": "СвЮЛ\\СведДолжнФЛ\\АдресМЖРФ\\Дом",
        "value": "Сведения о юридическом лице\\Сведения о лице, имеющем право без доверенности действовать от имени юридического лица\\Сведения об адресе места жительства в Российской Федерации\\Дом (владение и т.п.)"
      },
      {
        "key": "СвЮЛ\\СвУчредит\\УчрЮЛРос\\СвОбрем\\СвЗалогДержЮЛ\\СвРегИн\\ОКСМ",
        "value": "Сведения о юридическом лице\\Сведения об учредителях (участниках) юридического лица\\Сведения об учредителе (участнике) - российском юридическом лице\\Сведения об обременении доли участника\\Сведения о залогодержателе - ЮЛ\\Сведения о регистрации в стране происхождения\\Код страны происхождения"
      }
    ]


    The task is:
    Create an object to store the hierarchical data contained in the "value" fields of the attached structure.
    Then display the resulting object as a nested list on the html page.
    As an add. options can make the list nodes collapsible.

    I run this business through JSON.parse ()
    var requestURL = './local.json';
    var ourRequest = new XMLHttpRequest();
    ourRequest.open('GET', requestURL);
    ourRequest.onload = function() {
        var data = JSON.parse(ourRequest.response);
        renderHTML(data);
      }
      ourRequest.send();


    Then let's say I want to get the "key" value from the JSON object like this:
    const renderHTML = data =>{
        let htmlString = "";
        for (let i = 0; i<10; i++){
          htmlString += '<br>' +  data[i].key; 
        }
        section.insertAdjacentHTML('beforeend', htmlString);
      }

    At the exit I get
    СвЮЛ\СведДолжнФЛ\АдресМЖРФ\Дом
    СвЮЛ\СвУчредит\УчрЮЛРос\СвОбрем\СвЗалогДержЮЛ\СвРегИн\ОКСМ
    СвЮЛ\СвУпрОрг\ПредИнЮЛ\СвФЛ\Имя


    Apparently the file is generated with escaping like "\\" - after JSON.parse () we get one "\".
    How can I get rid of the "\" now, and allow each element of this field to be written into a separate div?
    What ideas are there for?
    Next, display the resulting object as a nested list on an html page.
    As an add. options can make the list nodes collapsible.
    JavaScript Gabriel Roach, May 3, 2019

  • 1 Answers
  • 0
    You can use .split ('\\') to translate the string into an array and then output each element of the array as you like.
    Anonymous

Your Answer
To place the code, please use CodePen or similar tool. Thanks you!