使用javascript的JSON解析指南
我有这样的json数据使用javascript的JSON解析指南,javascript,json,Javascript,Json,我有这样的json数据 { "students":[{"id":"001", "name":"James"},{"id":"002", "name":"Sam"}] "courses":[{"id":"001", "name":"English"}, {"id":"002", "name":"Maths"}] "activity_feed":[{"template":"{students:001} registered for {courses:002}"},{"templat
{
"students":[{"id":"001", "name":"James"},{"id":"002", "name":"Sam"}]
"courses":[{"id":"001", "name":"English"}, {"id":"002", "name":"Maths"}]
"activity_feed":[{"template":"{students:001} registered for {courses:002}"},{"template":"{students:002} dropped {courses:001}"}]
}
我正在尝试使用json数据创建一个使用javascript的活动提要,该javascript将使用activity_提要中的模板字段:
詹姆斯注册英语
萨姆放弃了数学
用学生和课程各自的名称替换模板中的{students}和{courses}字段的最佳方法是什么?我首先要让您的数据更容易发现。例如,将你的
学生
和课程
编入id
索引
之后剩下的就是迭代活动模板并使用
const数据={
“学生”:[{“id”:“001”,“姓名”:“James”},{“id”:“002”,“姓名”:“Sam”}],
“课程”:[{“id”:“001”,“名称”:“英语”},{“id”:“002”,“名称”:“数学”}],
“活动订阅源”:[{“模板”:“{学生:001}注册为{课程:002},{“模板”:“{学生:002}删除{课程:001}]
}
//一个简单的reducer函数,用于将“name”属性映射到映射中的“id”
const indexbyd=(map,{id,name})=>map.set(id,name)
//创建这些映射的对象哈希
常数模型={
学生:data.students.reduce(indexbyd,newmap()),
课程:data.courses.reduce(indexbyd,newmap())
}
const feed=document.getElementById('feed'))
data.activity_feed.forEach(({template})=>{
让listItem=document.createElement('li')
listItem.textContent=template.replace(/\{(\w+):(\w+)\}/g,
(389;,model,id)=>models[model].get(id))
feed.appendChild(列表项)
})
到目前为止您已经尝试了什么?所以是帮助人们解决问题,而不是要求免费的代码老实说,我在这方面有点新手,如果这是python,我会使用正则表达式。我正在寻找一种从模板中提取字段的方法。您需要的是基于活动提要创建循环。为什么模板格式不像James注册的英语版?为什么使用{students:001}
?作业格式如下