通过AngularJS将json格式转换为另一种json格式
Convert json format to another json format by AngularJS
我正在尝试用angularjs实现一个问卷,所以我有下面的响应数组,我需要将这个对象数组转换为json格式,就像下面的输出一样,那么我如何将对象数组转换成json格式?
var response=[{"questiongroup":1,"question":1,"response":"response1"},
{"questiongroup":1,"question":2,"response":"response2"},
{"questiongroup":1,"question":3,"response":"response3"},
{"questiongroup":1,"question":4,"response":"response4"},
{"questiongroup":1,"question":5,"response":"response5"},
{"questiongroup":2,"question":6,"response":"response6"},
{"questiongroup":2,"question":7,"response":"response7"},
{"questiongroup":2,"question":8,"response":"response8"},
{"questiongroup":2,"question":9,"response":"response9"},
{"questiongroup":2,"question":10,"response":"response10"}];
期望输出
{"questiongroups": [
{
"questiongroup": 1,
"question": [
{
"question": 1,
"response":"response1"
},
{
"question": 2,
"response":"response2"
},
{
"question": 3,
"response":"response3"
},
{
"question": 4,
"response":"response4"
},
{
"question": 5,
"response":"response5"
}]
},
{
"questiongroup": 2,
"question": [
{
"question": 6,
"response":"response6"
},
{
"question": 7,
"response":"response7"
},
{
"question": 8,
"response":"response8"
},
{
"question": 9,
"response":"response9"
},
{
"question": 10,
"response":"response10"
}]
}
]
}
我想到的最快的解决方案。
减少对对象的响应,其中问题组是数组的id。然后,为了根据需要返回,映射键以生成数组,并使用questiongroups值创建对象。
var response=[{"questiongroup":1,"question":1,"response":"response1"},
{"questiongroup":1,"question":2,"response":"response2"},
{"questiongroup":1,"question":3,"response":"response3"},
{"questiongroup":1,"question":4,"response":"response4"},
{"questiongroup":1,"question":5,"response":"response5"},
{"questiongroup":2,"question":6,"response":"response6"},
{"questiongroup":2,"question":7,"response":"response7"},
{"questiongroup":2,"question":8,"response":"response8"},
{"questiongroup":2,"question":9,"response":"response9"},
{"questiongroup":2,"question":10,"response":"response10"}];
var questiongroups = response.reduce(function(groups, question){
var group = groups[question.questiongroup] || [];
group.push({
question: question.question,
response: question.response
});
groups[question.questiongroup] = group;
return groups;
}, {});
questiongroups = Object.keys(questiongroups).map(function (key) {return {questiongroup: key, question: questiongroups[key]}});
var object = {
questiongroups: questiongroups
};
console.log(object);
var response=[{"questiongroup":1,"question":1,"response":"response1"},
{"questiongroup":1,"question":2,"response":"response2"},
{"questiongroup":1,"question":3,"response":"response3"},
{"questiongroup":1,"question":4,"response":"response4"},
{"questiongroup":1,"question":5,"response":"response5"},
{"questiongroup":2,"question":6,"response":"response6"},
{"questiongroup":2,"question":7,"response":"response7"},
{"questiongroup":2,"question":8,"response":"response8"},
{"questiongroup":2,"question":9,"response":"response9"},
{"questiongroup":2,"question":10,"response":"response10"}];
var result = {
"questiongroups": [],
}
var group = {
"questiongroup": 1,
"question": []
}
for (var i in response) {
if (response[i].questiongroup != group.questiongroup) {
result.questiongroups.push(group);
group = {
"questiongroup" : response[i].questiongroup,
"question": []
};
}
var entry = {
"question" : {
"question" : response[i].question,
"response" : response[i].response
}
}
group.question.push(entry);
}
result.questiongroups.push(group);
console.log(result);
相关文章:
- Json数据包含日期和时间格式
- 将日期时间从json转换为可读格式
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 在HTML页面上将URL解析为可读的json格式
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 将JSON对象的表示形式更改为显式键/值格式
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- 从Particle Photon Webhook到Azure的JSON格式
- JavaScript-HTML表单到JSON(空值)和格式
- json格式的国家数据到层次数据
- 从javascript调用C#Web服务并使用它(json格式)
- HTML表的JSON格式
- 如何将HTML表单(JSON格式)中的数据分配给变量
- 未知格式的Procjess JSON
- 将JSON数据格式化为excel文件
- JSON字符串格式错误
- Neo4j结果(JSON格式)创建D3树图
- 没有获得 json .save 的输出,格式为 pars.html
- 格式JSON日期到JS日期
- 如何在javascript中解析日期时间格式json字符串