Javascript 如何用父对象或字段包装JSON对象?

Javascript 如何用父对象或字段包装JSON对象?,javascript,jquery,html,reactjs,Javascript,Jquery,Html,Reactjs,我需要转换名为filter_by_address的JSON字符串的格式,以获得如下最终输出: { "input": { "citybooks": [ { "city": "Moss Beach", }, { "city": "Half Moon Bay", } ] } } 我目前所做的是以下代码: var filtered='[{作者:欧内斯特·海明威,标题:白雪公主,地址:悉尼,链接:{

我需要转换名为filter_by_address的JSON字符串的格式,以获得如下最终输出:

{
  "input": {
    "citybooks": [
      {
        "city": "Moss Beach",
      },
      {
        "city": "Half Moon Bay",
      }
    ]
  }
}
我目前所做的是以下代码:

var filtered='[{作者:欧内斯特·海明威,标题:白雪公主,地址:悉尼,链接:{url:https://www.loremipsum.com},图书类型:{类型:科幻小说},{作者:J.K.罗琳,书名:哈利波特,地址:悉尼,链接:{url:https://www.loremipsum.com},书籍类型:{类型:教科书}}]'; var books_data_array=JSON.parsefiltered; var new_objects=[]; //console.logbooks\u数据\u数组; 对于var i=0;i var filtered='[{作者:欧内斯特·海明威,标题:白雪公主,地址:悉尼,链接:{url:https://www.loremipsum.com},图书类型:{类型:科幻小说},{作者:J.K.罗琳,书名:哈利波特,地址:悉尼,链接:{url:https://www.loremipsum.com},书籍类型:{类型:教科书}}]'; var books_data_array=JSON.parsefiltered; var new_objects={ 输入:{ 城市图书:books\u data\u array.mapo=>{city:o.address}, } } console.lognew_对象 您可以使用map在数组中循环并构造所需的结构

var filtered='[{作者:欧内斯特·海明威,标题:白雪公主,地址:悉尼,链接:{url:https://www.loremipsum.com},图书类型:{类型:科幻小说},{作者:J.K.罗琳,书名:哈利波特,地址:悉尼,链接:{url:https://www.loremipsum.com},书籍类型:{类型:教科书}}]'; var books_data_array=JSON.parsefiltered; var new_objects={ 输入:{ 城市图书:books\u data\u array.mapo=>{city:o.address}, } }
console.lognew_对象 您也可以尝试使用reduce,但这取决于您

  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"}}]';
  const books_data_array = JSON.parse(filtered);
  var new_objects = [];

const filtered = books_data_array.reduce((cur, acc) => {
    const currEl = cur['input'].cityBooks;
    const addr = acc.address;
    const res = [...currEl, addr];
    return {input: {cityBooks: res}}
}, {input: {cityBooks:[]}})

console.log(filtered);

您也可以尝试使用reduce,但这取决于您

  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"}}]';
  const books_data_array = JSON.parse(filtered);
  var new_objects = [];

const filtered = books_data_array.reduce((cur, acc) => {
    const currEl = cur['input'].cityBooks;
    const addr = acc.address;
    const res = [...currEl, addr];
    return {input: {cityBooks: res}}
}, {input: {cityBooks:[]}})

console.log(filtered);

对不起,我有点困惑,你期望的输出是什么?@德语查找上面最后的输出单词。这就是我期望的输出Hanks,我建议使用reduce,这是一个很好的数组函数,就像map。对不起,我有点困惑,你期望的输出是什么?@德语查找上面的最终输出单词。这就是我期望的输出Hanks,我建议使用reduce,这是一个很好的数组函数,就像map一样。