使用jquery在json中获取子li值及其父ul值

使用jquery在json中获取子li值及其父ul值,jquery,html,json,Jquery,Html,Json,我在ul下有一个无序列表和一些li元素。我无法获得预期的ul和li值。我尝试了以下几种资源: [{ "id": "1", "category": "Parking", "subcategory": [ "Street Parking", "Bus Parking" ] }] 我的代码如下所示: 我的预期产出如下: [{ "id": "1", "category": "Parking", "subca

我在
ul
下有一个无序列表和一些
li
元素。我无法获得预期的
ul
li
值。我尝试了以下几种资源:

[{
    "id": "1",
    "category": "Parking",
    "subcategory": [
        "Street Parking",
        "Bus Parking"
    ]
}]

我的代码如下所示:

我的预期产出如下:

[{
    "id": "1",
    "category": "Parking",
    "subcategory": [
        "Street Parking",
        "Bus Parking"
    ]
}]
如何实现JSON?

试试这个:
请注意,我通过在顶部
li
元素中添加
data name
对html进行了一些更改

var mylist = [];
$(".nameList > li").each(function() {
    mylist.push({});
  var self = mylist[mylist.length-1];
  self.subcategory = [];
  self.id = $(this).attr("value");
  self.category = $(this).attr("data-name");
  $(this).find("ul > li").each(function(){
    self.subcategory.push($(this).html());
  });
  console.log(self);
});
还有一把小提琴:

如果你不能触摸HTML,这里有一个选项

var myList = [];

$('ul.nameList > li').each(function() {
    myList.push({
        "id": $(this).val(),
        "category": $(this).clone().children('ul.subcatList').remove().end().text().trim(),
        "subcategory": $(this).find('ul.subcatList li').toArray().map(function(value) { return value.innerHTML; })
    });
});
。。。但是如果可以的话,我会将类别名称放在一些元素中,以便于选择。你可以用

<li value="1"><span class="cattitle">Parking</span>
  <ul class="subcatList">
    <li>Street Parking</li>
    <li>Bus Parking</li>
    <li>Complementary Parking</li>
  </ul>
</li>
<li value="2"><span class="cattitle">Business Services</span>
  <ul class="subcatList">
    <li>Business Center</li>
    <li>A/V Capabilities</li>
    <li>Video Conferencing</li>
  </ul>
</li>
........

我希望这会有帮助,我做了很多研究,但为什么不投票呢?我没有投票,但我想除了添加链接之外,如果您能在这里添加代码片段,这个问题看起来会更完整。而不是粘贴一堆链接。