使用逗号分割json数据

时间:2017-10-27 14:59:01

标签: javascript jquery json

我有一个json,它有一个键“tag”,它返回这样的数据     “tags”:“jname,gender,city”

但我希望将这些值附加到单独的范围中,如下面的

<div class="info">
<span>jname</span><span>gender</span><span>city</span>
</div>

我正在尝试这个

 $.getJSON("data.json", function(tagsposts) {

        var items = [];
    splitsVal = tag.split(",");
    for (var i = 0; i < splitsVal.length; i++) {
       obj.push({name:splitsVal[i]});
        obj[i] = '<span>' + obj[i] + '</span>';
        $('.tags-div').append(obj[i])
    }
   $.each(tagsposts, function(key, val) {
       items.push('<a href="#">' + val['tags'] + '</a>');
   });
   $('#tagsposts').append(items.join(""));
});

我做得对吗

1 个答案:

答案 0 :(得分:1)

您正在尝试拆分未定义的变量:

function(tagsposts) {
    var items = [];
    splitsVal = tag.split(","); // but tag doesn't exist...

(如果你看一下你应该习惯做的浏览器控制台,你会得到一个非常明确的信息,说明为什么这不起作用:&#34; ReferenceError:Can&# 39;找到变量:tag&#34;。)

由于您还没有提供JSON,因此无法准确说明如何解决此问题。假设完整的JSON格式为

{"tag": "foo,bar,baz"}

然后你想要

splitsVal = tagsposts.tag.split(",")

如果结构比JSON内的结构更多,那么您需要向下爬过该解析对象以找到&#34;标记&#34;你需要的价值。

然而,这里还有很多其他问题。

您还尝试推送名为obj的未定义数组;您至少需要在var obj = []循环之外for。虽然不清楚为什么你根本使用obj,或者试图将对象{name: val}绘制到DOM中而不仅仅是值。您尝试做的只是阅读splitsVal[i]所以您可以这样做:

for (var i = 0; i < splitsVal.length; i++) {
    $('.tags-div').append('<span>'+splitsVal[i]+'</span>')
}

在尝试生成tagsposts内容时,您尝试迭代#tagsposts,就好像它是一个数组一样。 (你的JSON是一个数组吗?如果是这样的话,你也需要在获得tag值时迭代它。)