here it is format of array of strings i want to convert array of object using JSON.parse
var data = [
{
"user_id": 1,
"social_sites": { facebook: 'url1', twitter: 'url2', instagram: null },
"social_price": { facebook: 20, twitter: 15, instagram: null }
},
{
"user_id": 2,
"social_sites": { facebook: 'url3', twitter: 'url4', instagram: 'url5' },
"social_price": { facebook: 25, twitter: 18, instagram: 12 }
},
// ... other user objects
];
In javascript
function extractNonNullSocialSites(user) {
var socialSiteObject = JSON.parse(user.social_site);
var nonNullSocialSites = [];
for (var key in socialSiteObject) {
if (socialSiteObject[key] !== null) {
nonNullSocialSites.push({ site: key, site_url: socialSiteObject[key] });
}
}
return nonNullSocialSites;
}
In Jquery
function extractNonNullSocialSites(user) {
var socialSiteObject = JSON.parse(user.social_site);
var nonNullSocialSites = [];
$.each(socialSiteObject, function(site, url) {
if (url !== null) {
nonNullSocialSites.push({ site: site, site_url: url });
}
});
return nonNullSocialSites;
}
Error Encountered
// Assuming user.social_site is a JSON-formatted string
user.social_site = '{"facebook": "https://www.facebook.com", "twitter": null, "instagram": "https://www.instagram.com"}';
// Without JSON.parse, you would be working with a string
console.log(user.social_site); // '{"facebook": "https://www.facebook.com", "twitter": null, "instagram": "https://www.instagram.com"}'
// With JSON.parse, you get a JavaScript object
var socialSiteObject = JSON.parse(user.social_site);
console.log(socialSiteObject); // {facebook: "https://www.facebook.com", twitter: null, instagram: "https://www.instagram.com"}
If you try to iterate over the string directly without parsing it into an object, you will likely encounter errors or unexpected behavior, as the string itself doesn't have properties that you can access like an object
.
Top comments (0)