Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript的JSON解析指南_Javascript_Json - Fatal编程技术网

使用javascript的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

我有这样的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}"},{"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}
    ?作业格式如下