javascript - 如何用父对象或字段包装 JSON 对象?
问题描述
我需要将调用的 JSON 字符串的格式转换为filter_by_address
如下final output
所示:
{
"input": {
"citybooks": [
{
"city": "Moss Beach",
},
{
"city": "Half Moon Bay",
}
]
}
}
我目前所做的是下面的代码:
var filtered = '[{"author":"Ernest Hemingway","title":"Snow White","address":"Sydney","link":{"url":"https://www.loremipsum.com"},"booktype":{"type":"Science Fiction"}},{"author":"J.K. Rowling","title":"Harry Potter","address":"Sydney","link":{"url":"https://www.loremipsum.com"},"booktype":{"type":"Textbook"}}]';
var books_data_array = JSON.parse(filtered);
var new_objects = [];
//console.log(books_data_array);
for (var i = 0; i < books_data_array.length; i++) {
//console.log(books_data_array[i]["author"]);
var new_object = {
"citybooks": [{
"city": "address",
}]
}
new_objects.push(new_object);
}
console.log(new_objects);
我的代码仍然缺少一些东西。citybooks
我需要将field返回的所有对象包装在一个"input"
.
解决方案
您可以使用map
遍历数组并构造所需的结构。
var filtered = '[{"author":"Ernest Hemingway","title":"Snow White","address":"Sydney","link":{"url":"https://www.loremipsum.com"},"booktype":{"type":"Science Fiction"}},{"author":"J.K. Rowling","title":"Harry Potter","address":"Sydney","link":{"url":"https://www.loremipsum.com"},"booktype":{"type":"Textbook"}}]';
var books_data_array = JSON.parse(filtered);
var new_objects = {
input: {
citybooks: books_data_array.map(o => ({city: o.address})),
}
}
console.log(new_objects);
推荐阅读
- amazon-web-services - AWS ECS 在一个任务定义中启动多个容器
- angular - Angular 类名中的自定义后缀
- sql - 知道如何将每个客户的最新发票总和与特定金额相比较吗?
- python - 流媒体电影 Python 烧瓶
- c++ - boost::any / any_ostreamable 的奇怪行为
- unity3d - 保存场景时着色器的奇怪行为
- c++ - CAF 中 stateful_actor 的初始状态
- ios - 单击按钮时显示带有微调器的全屏模式
- amazon-web-services - 将 CloudFront 与外部托管的 DNS 一起使用,指向 EC2 实例
- java - 为什么这个游戏循环滞后?