【问题标题】:Split json data using comma使用逗号分割 json 数据
【发布时间】:2017-10-27 14:59:00
【问题描述】:

我有一个 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(""));
});

我做得对吗

【问题讨论】:

  • 我不知道,你呢?您必须说明出了什么问题。
  • 你做对了吗?它有效吗?你不能测试一下它是否正确吗?
  • 它没有填充任何数据
  • obj 声明在哪里?
  • 是的,出了点问题,这就是数据未填充的原因,需要您的帮助和建议

标签: javascript jquery json


【解决方案1】:

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

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

(如果您查看浏览器控制台,您应该养成这样做的习惯,您会收到一条非常明确的消息,说明为什么这不起作用:“ReferenceError: Can't find variable: tag”。 )

由于您尚未提供 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 值时也需要对其进行迭代。)

【讨论】:

  • 感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 2022-03-18
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
相关资源
最近更新 更多