首页 > 解决方案 > 使用键模式读取 JSON 对象值

问题描述

我的JSON结构如下

var data = [
        {name:'bracket', start_45641654:'46513489431',end_26441:'75434'},
        { name: 'notation', end_746413: '2146464', start_51345641: '76542464' },
    ];

我想打印开始,结束对象值,这里随机数附加到键start_end_. 尝试使用^正则表达式模式,但它不起作用。还有其他打印值的方法吗?

data.forEach(function (v, i) {
        $('tr').prepend('<td>Name:' + v['name'] + '</td>' +
            '<td>Start:' + v['^start_'] + '</td>' +
            '<td>End:' + v['^end_'] + '</td>'
            );
    });

标签: javascriptjqueryjson

解决方案


你不能在那里使用正则表达式。

您可以遍历对象的属性,检查名称是否具有所需的前缀。

data.forEach(function(v) {
  let start, end;
  Object.entries(v).forEach(([key, val]) => {
    if (key.startsWith('start_')) {
      start = val;
    } else if (key.startsWith('end_')) {
      end = val;
    }
  });
  $('tr').prepend('<td>Name:' + v.name + '</td>' +
    '<td>Start:' + start + '</td>' +
    '<td>End:' + end + '</td>'
  );
});


推荐阅读