Parse Json object in javascript

Hi everyone, I have one json object like

{"event1":{"title":"My birthday","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "},"event2":{"title":"My birthday again","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "}} 

and I want to analyze it as

 [ { title: 'All Day Event', start: new Date(y, m, 1) }, { title: 'Long Event', start: new Date(y, m, d-5), end: new Date(y, m, d-2) }] 

How do i do that. I wrote this code but its givin 0 array length is my code

 var response = eval(data); $.each(response, function() { obj = {}; $.each(this, function(k, v) { if(k=="start") { obj[k] = new Date(v); } if(k=="end") { obj[k] = new Date(v); } else { obj[k] = v; } event_data.push(obj); }); }); 
+8
json javascript
source share
6 answers
 data = JSON.parse('{"event1":{"title":"My birthday","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "},"event2":{"title":"My birthday again","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "}}') arr = [] for(var event in data){ var dataCopy = data[event] for(key in dataCopy){ if(key == "start" || key == "end"){ // needs more specific method to manipulate date to your needs dataCopy[key] = new Date(dataCopy[key]) } } arr.push(dataCopy) } alert( JSON.stringify(arr) ) 
+15
source share

It looks like you are already using jQuery, so just use $ .parseJSON. (Http://api.jquery.com/jQuery.parseJSON/)

You will need to iterate over the object that was created to include date strings in Date objects.

+1
source share
 var data = { "event1": { "title": "My birthday", "start": "12\/27\/2011 10:20 ", "end": "12\/27\/2011 00:00 " }, "event2": { "title": "My birthday again", "start": "12\/27\/2011 10:20 ", "end": "12\/27\/2011 00:00 " } }; var response = eval(data); var events = []; $.each(response, function(key, event) { var obj = {}; for (var prop in event) { obj[prop] = event[prop]; } obj["start"] = new Date(obj["start"]); obj["end"] = new Date(obj["end"]); events.push(obj); }); console.log(events); 
+1
source share

My code is:

 var datas = '{"event1":{"title":"My birthday","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "},"event2":{"title":"My birthday again","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "}}'; var dataObj = eval("(" + datas + ")"); var finalArr = []; for(var i in dataObj) { var t = dataObj[i]; finalArr.push({ title: t.title, start: new Date(t.start), end: new Date(t.end) }); } console.log(finalArr); 
+1
source share

To collect all the elements of an array and return a json object - this code is mainly for getting all the values โ€‹โ€‹of the selection window. but you can change it according to your requirement.

 collectData: function (arrayElements) { var main = []; for (var i = 0; i < arrayElements.length; i++) { var data = {}; this.e = arrayElements[i]; data.text = arrayElements[i].text; data.val = arrayElements[i].value; main[i] = data; } return main; }, 

To analyze the same data, we go as follows

 dummyParse: function (json) { var o = JSON.parse(json); //conerted the string into JSON object $.each(o, function () { inner = this; $.each(inner, function (index) { alert(this.text) }); }); } 
0
source share

Perhaps this method did not exist 5 years ago. But if you want to surpass your JSON data or just a simple JS object in the log only JSON.stringify () is enough.

Enter

 let cat = { name: {fist: "Fluffy", last: "LaBeouf"}, color: "White" } 

Analyze

 JSON.stringify(cat, null, 2) 

Exit

 { "name": { "fist": "Fluffy", "last": "LaBeouf" }, "color": "White" } 

Note: the stringify 2 method indicates the number of spaces.

0
source share

All Articles