Как сделать объект JSON из словаря? - PullRequest
0 голосов
/ 06 июля 2018

Я новичок в JavaScript.В браузере я получаю длинный словарь, подобный этому:

{"cat": "4" , "dog": "5", "fish": "9" }

Мне интересно, как наиболее эффективно преобразовать его в объект JSON, например:

[
  {
    "name": "cat",
    "value": "4"
  },
  {
    "name": "dog",
    "value": "5"
  },
  {
    "name": "fish",
    "value": "9"
  }
]

Ответы [ 5 ]

0 голосов
/ 06 июля 2018

Вы можете сделать это следующим образом:

  • Вызовите цикл in и прочитайте ваш первый объект
  • Нажмите имя и значение в вашем новом объекте по одному. Пример кода:

var a = {"cat": "4" , "dog": "5", "fish": "9" };
var newJSON = [] ;
console.log(a);


for ( key in a ) {
  newJSON.push({name : key, value : a[key]});
 }

console.log(newJSON);
0 голосов
/ 06 июля 2018

Вы можете использовать функцию Object.entries для получения каждой пары ключ-значение и с помощью функции map создать желаемый выход.

let obj = {"cat": "4" , "dog": "5", "fish": "9" },
    result = Object.entries(obj).map(([name, value]) => ({name, value}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 06 июля 2018

Вы можете иметь такой форматированный объект

{
    animals : [
        {"name":"cat", "value": 4},
        {"name":"dog", "value": 5},
        {"name":"fish", "value": 9}
    ]
}

или как это

[
   {"name":"cat", "value": 4},
   {"name":"dog", "value": 5},
   {"name":"fish", "value": 9}
]
0 голосов
/ 06 июля 2018

Вы можете просто зацикливать ключи объекта словаря, используя Object.keys() метод и использовать .map() метод для преобразования каждая повторяющаяся пара ключ / значение соответствует object:

var results = Object.keys(obj).map(function(k) {
  return {
    name: k,
    value: obj[k]
  };
});

Демо:

var obj = {
  "cat": "4",
  "dog": "5",
  "fish": "9"
};

var results = Object.keys(obj).map(function(k) {
  return {
    name: k,
    value: obj[k]
  };
});
console.log(results);
0 голосов
/ 06 июля 2018

Вы можете пройти через него и передать каждую пару ключ-значение в массив.

var tValue = {"cat": "4" , "dog": "5", "fish": "9" };
var tList = [];

for(var tKey in tValue) tList.push({name: tKey, value: tValue[tKey]});

console.log(tList);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...