Missblues
Missblues

Reputation: 103

put data from json file array in a jquery array

I have a json file array with data and I want to use it in a jquery array.

My json file is like this;

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

and then my jquery array outcome i want should be like this (but missing the score and value data.

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
    }
}
];

Below I made an attemp to set up a jquery array but i am mnot so good in this. I think i have to use a double $each? but how do I make the array?

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);    

          
    }); 

Thanks in advance :)

Upvotes: 0

Views: 46

Answers (2)

Harshana
Harshana

Reputation: 5496

You can use one each loop and pass the object with the elements you need. Check the below example:

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>

Upvotes: 1

phi-rakib
phi-rakib

Reputation: 3302

You could use Array.prototype.map() method to get the result.

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);

Upvotes: 2

Related Questions