如何将带有optgroup的<select>转换为JSON数组

HTML:

<select multiple size="10" class="show" id="boxA"></select>
<nav id="buttons">
    <ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
        <li><a class="remove" href="#">Remove</a></li>
        <li><a class="add" href="#">Add</a></li>
    </ul>
</nav>
<select multiple size="10" class="show" id="boxB"> </select>

How to convert <select multiple size="10" class="show" id="boxB"> </select> into JSON array so that I can send it over to server via ajax?

For your information the select box with ID boxB created by PHP file with <optgroup>.

PHP file:

$last_category = "";
while ($row = mysqli_fetch_array($result)) {
    $levels = $row['level_name'];
    $levels_id = $row['level_id'];
    $subjects = $row['subject_name'];
    $subjects_id = $row['subject_id'];
    if ($last_category != $levels) {
        $last_category = $levels;
        echo '<optgroup label="' . $levels . '" class="' . $q .'">';
    }
    echo '<option value="' . $subjects_id . '">' . $subjects . '</option>';
    if ($last_category != $levels)
        echo '</optgroup>';
}

You can do something like this:

var json = $(':input').serializeArray()
var string = JSON.stringify(json)