首页 > 解决方案 > 映射 JSON 字段

问题描述

我有一个用 PHP json_encode 函数创建的 JSON:

$json = [{"title":"test1","date":"2019, 12, 27"},{"title":"test2","date":"2019, 11, 19"}];

我想将这些字段映射到日历数据源字段:https ://year-calendar.github.io/rc-year-calendar/examples如何正确执行此操作?

我需要的:

<script type="text/javascript">
const calendar = new Calendar('#calendar', {
  dataSource: [
            {
                startDate: new Date(2019, 12, 27),
                name: 'test1'
            },
            {
                startDate: new Date(2019, 11, 19),
                name: 'test2'
            }, 
        ],
});
</script>

我尝试了什么:

$json = [{"title":"test1","date":"2019, 12, 27"},{"title":"test2","date":"2019, 11, 19"}];

<script type="text/javascript">

var json = <?php echo $json; ?>;
const calendar = new Calendar('#calendar', {
  dataSource: [
          return json.map(r => ({
            startDate: new Date(r.date),
            name: r.title,
          }));
        ],
});
</script>

标签: javascriptjsonmapping

解决方案


你可以这样做:

const calendarArray = [{"title":"test1","date":"2019, 12, 27"},{"title":"test2","date":"2019, 11, 19"}];


const dataSource = calendarArray.map((element) => {
  return {
    startDate: new Date(element.date),
    name: element.title
  }
});

const calendar = new Calendar("#calendar", {dataSource: dataSource})
<script src="https://unpkg.com/js-year-calendar@latest/dist/js-year-calendar.min.js"></script>
<div id="calendar"></div>


推荐阅读