【发布时间】:2015-11-10 19:43:14
【问题描述】:
我正在寻找解析这个 JSON 数组并在结构化列表中显示可用位置,但我很难弄清楚从哪里开始。
因此,数据会根据所选日期解析为 HTML,但在侧栏中,它需要根据“位置”值中的键显示可用位置 - 但此解析需要在树中构建,例如下面的 HTML。有没有一种有效的方法来实现这一点?如果这有助于以更优雅的方式完成此任务,则可以稍微调整 HTML 和 JSON 或添加数据属性。谢谢!
这是示例 JSON 数组:
[
{
"link": "http://link.com",
"title": "Illustration ipsum dolor sit amet",
"location": "New York",
"date": "June 19, 2015"
},
{
"link": "http://link.com",
"title": "Illustration ipsum dolor sit amet",
"location": "Los Angeles",
"date": "June 19, 2015"
},
{
"link": "http://link.com",
"title": "Illustration ipsum dolor sit amet",
"location": "San Francisco",
"date": "June 19, 2015"
},
{
"link": "http://link.com",
"title": "Illustration ipsum dolor sit amet",
"location": "Chicago",
"date": "June 19, 2015"
},
{
"link": "http://link.com",
"title": "Illustration ipsum dolor sit amet",
"location": "Europe",
"date": "June 19, 2015"
},
{
"link": "http://link.com",
"title": "Illustration ipsum dolor sit amet",
"location": "Asia",
"date": "June 19, 2015"
}
]
这是应该输出的结构
<ul>
<li data-location="USA" class="collapsable">USA
<ul class="cities">
<li data-location="los-angeles">Los Angeles</li>
<li data-location="new-york">New York</li>
<li data-location="san-francisco">San Francisco</li>
<li data-location="chicago">Chicago</li>
<li data-location="philadelphia">Philadelphia</li>
<li data-location="detroit">Detroit</li>
<li data-location="atlanta">Atlanta</li>
<li data-location="new-orleans">New Orleans</li>
<li data-location="washington-dc">Washington D.C.</li>
</ul>
</li>
<li data-location="europe">Europe</li>
<li data-location="asia">Asia</li>
<li data-location="south-america">South America</li>
<li data-location="africa">Africa</li>
<li data-location="australia">Australia</li>
</ul>
【问题讨论】:
-
@depperm 我尝试了一系列 if 语句,但我觉得必须有更好的方法......
-
您可以通过循环来执行此操作,但是您必须在数据中确定什么是城市,什么是大陆。
-
这看起来像家庭作业,如果您没有尝试任何代码,我会犹豫提供帮助,但我认为导致您被难住的部分原因是您将“位置”称为值. “location”是一个key,当你遍历样本数组中的每个对象时,只需调用objectInstance[“location”]就可以得到“location”的值。这会让你开始。由您决定需要将哪些数据添加到示例 JSON 以确定位置是城市还是大陆,以及是否需要跟踪“父”位置,或者是否所有城市都在美国。
-
谢谢@MHardwick 主要是因为大脑有一个缺口,一个小问题看起来像一个更大的问题,但是感谢您的想法,您是对的,只需将父类别/大陆添加到数据数组清除了由于某种原因困扰我的整个问题。
标签: javascript jquery arrays json ajax