使用Javascript解码bplist字符串

时间:2017-12-20 16:20:11

标签: javascript json node.js

我正在尝试使用javascript解析JSON文件中的值。使用getJSON方法,我能够从JSON获取值。

Q1:在到达attributionString时,我无法获得超出此点的值。我尝试使用以下代码。但它会引发错误

var sample = data.layers[i].layers[j].attributedString._class;
console.log(sample)

Link to the fiddle

在谷歌搜索中,我发现一些值以base 64 bplist格式给出。

Q2:如何使用Javascript将bplist格式值解码为可读格式?

我找到了一个执行上述操作的节点包。但我希望以javascript浏览器格式提供它。感谢

Node ModuleAnother One

1 个答案:

答案 0 :(得分:0)

您有错误,因为某些值为undefined,您只需在访问子值之前对其进行测试:

var page = 'https://api.myjson.com/bins/1ca2vz'
$.getJSON(page, function(data) {
  var layerNo = data.layers.length;
  for (i = 0; i < layerNo; i++) {
    var slideName = data.layers[i].name
    var slideConNo = data.layers[i].layers.length;
    for (j = 0; j < slideConNo; j++) {
      var layerName = data.layers[i].layers[j].name
      var as = data.layers[i].layers[j].attributedString;

      if (as) {
        var sample = data.layers[i].layers[j].attributedString._class;
        console.log('sample =', sample)
      }
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>