Создание многомерного массива json с помощью jQuery в консоли Chrome

У меня есть рабочий скрипт jQuery, который будет выводить необходимые поля и значения с веб-сайта с помощью консоли Chrome (да, для краткости это нужно делать в консоли).

Он отлично работает, но из-за количества возвращаемых полей его было бы намного легче читать, если бы его можно было разбить на многомерные массивы.

Ниже приведен сокращенный сценарий jQuery, который запускается из консоли. Это защищенный паролем сайт, поэтому, к сожалению, я не могу указать веб-страницу, но я надеюсь, что следующие примеры будет легко понять.

Так как я - кусок jQuery, я не уверен, что возможно при попытке объединить несколько объектов в конце скрипта, например, "arr.push(obj);"

Вот рабочий скрипт с примерами выходных значений.

##Рабочий скрипт##

var arr = []; 
jQuery('#BasicInfo > table > tbody > tr >').each(function (i, v) 
{
    var obj = {}; 
    var $this = jQuery(this);  

    // section 1
    obj.orgid = jQuery('#org').val();
    obj.userid = jQuery('#userid').val();
    obj.companyname = jQuery('#companyname').val();

    // group 1
    obj.groupname1 = jQuery('#group_1').val();
    obj.productgroupid1 = jQuery('#prodgroup_1').val();
    obj.usedflag1 = jQuery('#flag_1').val();
    obj.webaddress1 = jQuery('#webaddress_1').val();

    // group 2
    obj.groupname2 = jQuery('#group_2').val();
    obj.productgroupid2 = jQuery('#prodgroup_2').val();
    obj.usedflag2 = jQuery('#flag_2').val();
    obj.webaddress2 = jQuery('#webaddress_2').val();

    arr.push(obj);  
});  JSON.stringify(arr); 

Вывод JSON

[{

  "orgid":"40",
  "userid":"BrennanHuff",
  "companyname":"Prestige World Wide",

  "groupname1":"Security Services",
  "productgroupid1":"1",
  "usedflag1":"Y",
  "webaddress1":"www.santamaria.com",

  "groupname2":"Investors ?",
  "productgroupid2":"2",
  "usedflag2":"Y",
  "webaddress2":"www.PrestigeWorldWide_Wide_Wide_Wide.com"
}]

Цель

Однако я хотел бы узнать, как создать более сложный массив JSON с помощью jQuery.

Я не уверен, как создать несколько объектов (?), Которые затем выталкиваются в конце, а затем преобразуются в строки. Я искал, но не могу найти способ сделать это в консоли с помощью jQuery, в основном потому, что я все еще новичок в терминологии.

Спасибо всем и каждому, кто нашел время, чтобы прочитать это и предоставить информацию и отзывы - это очень ценится.

Желаемый вывод JSON

[  

"companyinfo": [{  
        "orgid":"40",
        "userid":"BrennanHuff",
        "companyname":"Prestige World Wide"
        }],

"group_1":   [{
        "groupname1":"Security Services",
        "productgroupid1":"1",
        "usedflag1":"Y",
        "webaddress1":"www.santamaria.com"
          }],

"group_2":  [{
        "groupname2":"Investors ?",
        "productgroupid2":"2",
        "usedflag2":"Y",
        "webaddress2":"www.PrestigeWorldWide_Wide_Wide_Wide.com"
        }]

]
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

var arr = []; // the array
var obj = {}; // the object

obj.companyinfo = [{}]; // create the header array
obj.group_1 = [{}]; // create the header array
obj.group_2 = [{}]; // create the header array

// add data
obj.companyinfo[0].orgid = "40"; 
obj.companyinfo[0].userid = "BrennanHuff";
obj.companyinfo[0].companyname = "Prestige World Wide";    
obj.group_1[0].groupname1 = "Security Services";
obj.group_1[0].productgroup1 = "1";
obj.group_1[0].usedflag1 = "Y";
obj.group_1[0].webaddress1 = "www.santamaria.com";
// continue adding here...

// if you want to add another object to the group_1 array
// then just use obj.push again pointing where you want it
// to go for example.
// Delete this if you dont want it.
//-------------------
var otherObj = {};
otherObj.groupname1b = "groupname1 b";
otherObj.something = [{}];
obj.group_1.push(otherObj);
//-------------------

// push the obj into the array
arr.push(obj);

console.info(arr);
console.info("-------------------------");
// Security Services in the group_1 array
console.info(arr[0].group_1[0].groupname1);
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

Take a look at how I did it an I hope this is what you are looking for.

большое спасибо! вот и все - работает отлично и только небольшие изменения для добавления новых массивов. Не могу отблагодарить вас достаточно. Всего наилучшего.

seligtech 10.04.2019 09:11

Без проблем. Удачи.

Icewine 10.04.2019 09:18

Другие вопросы по теме