создать вложенный объект JSON из таблицы html? - PullRequest
0 голосов
/ 29 апреля 2020

Я создал одну HTML таблицу, которая генерируется динамически. из этой таблицы HTML я хочу создать JSON следующим образом. Я использовал атрибуты данных для получения табличных данных и игнорировал теги <head> <tfoot>. Все мои данные находятся в теге <tbody>, поэтому есть подсказка для сгенерированного JSON, как это?

{
         "id":"",
         "name":"Source",
         "properties":[{
            "type":"",
            "name1":"",
            "location":"",
            "schema":"",
            "row":0
         },{
            "type":"",
            "name1":"",
            "location":"",
            "schema":"",
            "row":1
         }]
      }

Я создал один JSON, но он не создан, как указано выше JSON. любой намек? как создать JSON, как указано выше json.

var newFormData = [];
$('#createJSON').click(function() {
    $('#main-div .component-base').each(function() {
        console.log(this);
        // console.log($(this));
        if ($(this).data('component-type') == 'source') {
            console.log('Process source');

            $(this)
                .find('tbody tr')
                .each(function(i) {
                    var tb = jQuery(this);
                    var obj = {};
                    tb.find('input:not(input[type="checkbox"])').each(function() {
                        obj[this.name] = this.value;
                    });
                    obj['row'] = i;
                    newFormData.push(obj);
                });
            console.log(newFormData);
            document.getElementById('output').innerHTML = JSON.stringify(newFormData);
            event.preventDefault();
        }
            });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button style="margin: 1%;" id="createJSON">Create JSON</button>
<p id="output">hfghfgh</p>
<div class="main-div" id="main-div">
<table id="source-table" data-component-type="source" class="component-base">
                <thead>
                    <tr>
                        <th colspan="5">Source</th>
                    </tr>

                    <tr>
                        <th>ID</th>
                        <th>Type</th>
                        <th>Name</th>
                        <th>Location</th>
                        <th>Schema</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>
                            <input id="id-id" type="text" name="id" placeholder="id" />
                        </td>
                        <td style="display: none;">
                            <input id="name" type="text" name="name" placeholder="name" value="source" />
                        </td>
                        <td>
                            <input id="type" type="text" name="type" placeholder="Type" />
                        </td>
                        <td>
                            <input id="Name" type="text" name="name1" placeholder="Name" />
                        </td>
                        <td>
                            <input id="location" type="text" name="location" placeholder="Location" />
                        </td>
                        <td>
                            <input id="schema" type="text" name="schema" placeholder="Schema" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <input id="id-id" type="text" name="id" placeholder="id" />
                        </td>
                        <td style="display: none;">
                            <input id="name" type="text" name="name" placeholder="name" value="source" />
                        </td>
                        <td>
                            <input id="type" type="text" name="type" placeholder="Type" />
                        </td>
                        <td>
                            <input id="Name" type="text" name="name1" placeholder="Name" />
                        </td>
                        <td>
                            <input id="location" type="text" name="location" placeholder="Location" />
                        </td>
                        <td>
                            <input id="schema" type="text" name="schema" placeholder="Schema" />
                        </td>
                    </tr>
                </tbody>
                <tfoot>
                    <tr>
                        <td>
                            <button class="delete-component" style="margin: 1%;">
                  Delete Table
                </button>
                        </td>
                    </tr>
                </tfoot>
            </table>
                </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...