如何读取JSON格式的字符串数据数据?

时间:2015-08-28 15:59:50

标签: javascript jquery json

我是的新手。我正在尝试以格式阅读数据。

data.json:

function initializeCarousel() {
    return $('.your-class [data-slick-index="' + currentSlide + '"] a')
    .map(function(el) {
        return el.href;
    })
    .get()
    .filter(function(href, pos, self) {
        return self.indexOf(href) == pos;
    })
    .reduce(function(sequence, url) {
        var productPromise = getProducts(url);
        return sequence
        .then(function() {
            return productPromise;
        })
        .then(function(dataObj) {
            $(".carousel2").append(dataObj.image);
            // ... dataObj.name ...
            // ... dataObj.price ...
        }, function() {
            return sequence;//skip over error
        });
    }, $.when())//resolved starter promise for the reduction
    .then(function () {
        $('.carousel2').slick({ speed: 500, autoplay: false, autoplaySpeed: 4000, arrows:false });
        console.log("this is initialized");
    });
}

读取数据并指定名称:

promises

但它对我不起作用。请帮我。我怎样才能正确阅读?

4 个答案:

答案 0 :(得分:2)

var items = [];
$.getJson('data.json', function(data) {
  $.each(data, function(index, value) {
    items.push(value);
  })
})

希望它对你有所帮助。

答案 1 :(得分:0)

我建议您检查一下json数据。

带有字符串数组的格式良好的json数据可以是:

["Hi", "Hello", "Test"]

如果您需要帮助来验证您的json数据,可以使用以下链接:http://pro.jsonlint.com/

关于你的问题,Pankaj Gupta的回答是一个很好的选择。

不要忘记在javascript语句的末尾使用分号。

var items = [];
$.getJson("data.json", function(data)
{
    $.each(data, function(index, value)
    {
        items.push(value);
     });
});

答案 2 :(得分:0)

1.您将name.toString()替换为data。然后它会工作。

var name = {
  categories: []
};
$.getJSON('data.json', function(data) {
  name.categories = data;
});

2.另外,您可以通过Helper对象进行设置。 Helper.setArray(name.categories, data);代替name.categories = data;。通常,我使用帮助程序进行解析和其他目的。

var Helper = {
  clearArray: function(arr) {
    if (arr && Array.isArray(arr)) {
      arr.length = 0;
    }
  },
  pushArray: function(arr1, arr2) {
    if (arr1 && arr2 && Array.isArray(arr1)) {
      arr1.push.apply(arr1, Array.isArray(arr2) ? arr2 : [arr2]);
    }
  },
  setArray: function(arr1, arr2) {
    this.clearArray(arr1);
    this.pushArray(arr1, arr2);
  }
}

答案 3 :(得分:-1)

首先,您需要创建数组对象。

  • 之后你必须循环数据并逐个存储到数组对象中。

示例:

var categories = [];
var jsonobj;
$.getJSON('data.json', function(data) {
  jsonobj = data;
});
for (i in obj) {
  var temp = [];
  temp.push(obj[i].'jsondata');
}

希望这是回答你的问题。您可以参考此link