Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accessing values inside single array of JSON objects

I have wasted two days on this and I can't take it anymore. I am getting well formed JSON data from my $.ajax call. Sample below...

"results":[
"{"a":"data","b":"data","c":"data","d":"data"}",
"{"a":"data","b":"data","c":"data","d":"data"}",
"{"a":"data","b":"data","c":"data","d":"data"}",
"{"a":"data","b":"data","c":"data","d":"data"}"
]

I have attempted to access the values in this single array of JSON objects and just can't figure it out. Here's my code below...

success:function (data) {

/*
$.each(data.results, function(i, val) {
console.log(i, val);
});
*/

$('a.previewUrl').each(function (i) {
    var res = jQuery.parseJSON(data.results[0]);
    var previewUrl = $(this);
if(previewUrl.attr("href") == '') {
    previewUrl.attr("href", res[i].d);
}

});

} // end success

The console.log iteration over each JSON object in the array prints out fine but I think I have tried a dozen different ways to grab these values in the $.each() loop. What I am missing?

like image 939
Marci Avatar asked Nov 18 '25 03:11

Marci


1 Answers

Your Json isn't valid. Try putting it through jsonlint and see what happens.

I think this could be what you were aiming for:

{
"results": [
    {
        "a": "data",
        "b": "data",
        "c": "data"
    },
    {
        "a": "data",
        "b": "data",
        "c": "data"
    },
    {
        "a": "data",
        "b": "data",
        "c": "data"
    },
    {
        "a": "data",
        "b": "data",
        "c": "data"
    }
]}

and if you're using jQuery's $.getJSON function, you don't need to parse your data or if you're using the $.ajax function, set the datatype to json so it wil parse the data for you.

like image 168
jchn Avatar answered Nov 19 '25 17:11

jchn



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!