поместить данные из массива файлов json в массив jquery

#javascript #jquery #arrays

#javascript #jquery #массивы

Вопрос:

У меня есть массив файлов json с данными, и я хочу использовать его в массиве jquery.

Мой файл json выглядит следующим образом;

 [{"id":"1","value":"0.00","score":"a"},
{"id":"2","value":"0.00","score":"c"},
{"id":"3","value":"12.56","score":"e"}]
 

и тогда результат моего массива jquery, который я хочу, должен быть таким (но без данных оценки и значения.

 var setup = [
{
    "type": "single",
    "subtype": {
        "type": "Point",
        "score": use 'score' of the json file
    },
    "properties": {
        "text": use 'value' of the json file,
        "height": 60
    }
},
{
    "type": "single",
    "subtype": {
        "type": "Point",
        "score": use score of the json file
    },
    "properties": {
        "text": use value of the json file,
        "height": 60
    }
}
];
 

Ниже я предпринял попытку настроить массив jquery, но я не настолько хорош в этом. Я думаю, мне нужно использовать двойной $ каждый? но как мне создать массив?

 var setup = [];
    // FETCHING DATA FROM JSON FILE 
  $.getJSON("results.json", function(data) { 

        // ITERATING THROUGH OBJECTS 
        $.each(data, function (key, value) { 
               var test = "";
                     $.each(value, function(index, obj) {
                        });
         
        }); 


   setup.push(setup);    

          
    }); 
 

Заранее спасибо 🙂

Ответ №1:

Вы можете использовать Array.prototype.map() метод для получения результата.

 const data = [
  { id: '1', value: '0.00', score: 'a' },
  { id: '2', value: '0.00', score: 'c' },
  { id: '3', value: '12.56', score: 'e' },
];

const ret = data.map((x) => ({
  type: 'single',
  subtype: {
    type: 'Point',
    score: x.score,
  },
  properties: {
    text: x.value,
    height: 60,
  },
}));
console.log(ret); 

Комментарии:

1. работает как шарм 🙂 спасибо, что я ввел ajax—> $.ajax({ метод: «GET», тип данных: «json», url: ‘https:bla.json ‘, данные: данные, успех: функция(данные) { const ret = data.map((x) =>({ тип: ‘single’, геометрия: { тип: ‘Point’, оценка: [x.score1, x.score2], }, свойства: { текст: x.value, высота: 30, } })); console.log(ret); // сделайте некоторыепрочее } });

Ответ №2:

Вы можете использовать по одному для каждого цикла и передавать объект с нужными вам элементами. Проверьте приведенный ниже пример:

 var jsonData = [{
    "id": "1",
    "value": "0.00",
    "score": "a"
  },
  {
    "id": "2",
    "value": "0.00",
    "score": "c"
  },
  {
    "id": "3",
    "value": "12.56",
    "score": "e"
  }
]

var setup = [];
// FETCHING DATA FROM JSON FILE 
$.each(jsonData, function(key, value) {
  var test = "";
  d = {
    "type": "single",
    "subtype": {
      "type": "Point",
      "score": value.score
    },
    "properties": {
      "text": value.value,
      "height": 60
    }
  };
  
  setup.push(d)
});

console.log(setup) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 

Комментарии:

1. Спасибо, этот метод также сработал для меня 🙂