javascript - 使用逗号分割json数据

标签 javascript jquery json

我有一个 json,它有一个键“标签”,它返回这样的数据 "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(""));
});

我做得对吗

最佳答案

您正在尝试拆分 undefined variable :

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

(如果你查看你的浏览器控制台,你应该养成这样做的习惯,你会得到一个非常清楚的消息,说明为什么这不起作用:“ReferenceError:找不到变量:标签”。 )

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

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

那么你会想要

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

如果 JSON 中的结构比 JSON 中的结构更多,您将需要向下爬过该已解析对象以找到您需要的“标签”值。

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

您还尝试推送到名为 obj 的未定义数组;在 for 循环之外至少需要一个 var obj = []。虽然不清楚您为什么要使用 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 值时对其进行迭代。)

关于javascript - 使用逗号分割json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978016/

相关文章:

javascript - 为什么这个 'undefined' 出现在 HTML 中?

javascript - DIV 内容文本出现在单行/行中

php - 直接从 JavaScript 访问 GET?

javascript - Bootstrap - 使用 Jquery 在 Div 之间切换

java - 我如何创建自定义 Jackson Mapper?

javascript - 如何在以ajax方式插入后刷新我的服务器控件?

javascript - 使用变量函数重新加载页面

javascript - 如何修复相关的 jQuery 下拉选择代码?

ios - 如何在快速注册时检查用户是否已经注册

javascript - 如何获取json格式的KendoGrid显示数据?