1

Hi i have a JSON array which looks like this.

 {
 "28": {
     "controllerID": "28",
     "DateDiff": "147",
     "CycleTime": "-52"
 },
 "30": {
     "controllerID": "30",
     "DateDiff": "117",
     "CycleTime": "-59"
 },
 "37": {
     "controllerID": "37",
     "DateDiff": "71",
     "CycleTime": "-56"
 },
 "40": {
     "controllerID": "40",
     "DateDiff": "59",
     "CycleTime": "-56"
 }
}

What i want to do is for each element in the array put the data in to a DIV which looks like this

 <div class="box">
        <div class="col-md-12 Top">ZW01004</div>
        <div id="28C" class="col-md-12 Midbox"></div>
 </div>

Where the number of the array corresponds to the DIV ID, so for this example the div with id 28C would have the value -52

how can i achieve this?

3
  • 2
    Do you already have the DIV or should it be created as well? Also, what have you tried? We're not exactly a code writing service. Commented Apr 7, 2015 at 11:29
  • You need an HTML string as an output? Commented Apr 7, 2015 at 11:30
  • @Mr.Polywhirl JSON object, but you should put that in your comment for when you want to correct someone... :D Commented Apr 7, 2015 at 12:01

5 Answers 5

4

below working for me

<script>


var jsonArr = {
 "28": {
     "controllerID": "28",
     "DateDiff": "147",
     "CycleTime": "-52"
 },
 "30": {
     "controllerID": "30",
     "DateDiff": "117",
     "CycleTime": "-59"
 },
 "37": {
     "controllerID": "37",
     "DateDiff": "71",
     "CycleTime": "-56"
 },
 "40": {
     "controllerID": "40",
     "DateDiff": "59",
     "CycleTime": "-56"
 }
};

$.each(jsonArr, function(key, val){
    console.log(key);
    console.log(val.controllerID);

    var html = '<div class="col-md-12 Top">'+val.controllerID+'</div><div id="'+val.controllerID+'" class="col-md-12 Midbox"></div>'

    $('.box').append(html);

});

</script>
Sign up to request clarification or add additional context in comments.

Comments

1

This is object, not an array but you can go through it using for loop

var obj = 
{
 "28": {
     "controllerID": "28",
     "DateDiff": "147",
     "CycleTime": "-52"
 },
 "30": {
     "controllerID": "30",
     "DateDiff": "117",
     "CycleTime": "-59"
 },
 "37": {
     "controllerID": "37",
     "DateDiff": "71",
     "CycleTime": "-56"
 },
 "40": {
     "controllerID": "40",
     "DateDiff": "59",
     "CycleTime": "-56"
 }
};

    for (var key in obj) {
      console.log(obj[key]);
}

Comments

1
 var response= {
  "28": {
 "controllerID": "28",
 "DateDiff": "147",
 "CycleTime": "-52"
  },
  "30": {
 "controllerID": "30",
 "DateDiff": "117",
 "CycleTime": "-59"
 },
 "37": {
 "controllerID": "37",
 "DateDiff": "71",
 "CycleTime": "-56"
},
"40": {
 "controllerID": "40",
 "DateDiff": "59",
 "CycleTime": "-56"
}
};
var obj = jQuery.parseJSON(response);
 $.each(obj, function(key,value) {
 alert(value.controllerID); 
}); 

Comments

1

Although you have an Object and not an Array, you can still use jQuery's $.each function. The jQuery.each( object, callback ) function can take an object. The callback is a key-value pair.

var data = { '28' : {
  "controllerID": "28",
  "DateDiff": "147",
  "CycleTime": "-52"
}, '30' : {
  "controllerID": "30",
  "DateDiff": "117",
  "CycleTime": "-59"
}, '37' : {
  "controllerID": "37",
  "DateDiff": "71",
  "CycleTime": "-56"
}, '40' : {
  "controllerID": "40",
  "DateDiff": "59",
  "CycleTime": "-56"
}};

$(document).ready(function() {
  $.each(data, function(key, value) {
    $('body').append(
      $('<div>').addClass('box').append(
        $('<div>').addClass('col-md-12 Top').html(value.DateDiff)
      ).append(
        $('<div>').attr('id', value.controllerID + 'C').html(value.CycleTime)
          .addClass('col-md-12 Midbox')
      )
    );
  });
});
body {
  background: #DDD;
}

.box {
  border: thin solid black;
  margin: 2px;
  background: #FFF;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Comments

0
var obj = JSON.parse(your_json_string);
var keys = Object.keys(obj);
for(var i = 0; i < keys.length; i++){
    var id = keys[i];
    var control = obj[id].controllerID;
    var date= obj[id].DateDiff;
    var cycle= obj[id].CycleTime;

    //make html here using this data
}

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.