0

My Ajax call is as follows

function onMapClick(e) {

$.ajax({
    type: "GET",
    url: GET_MAP_PT_INFO_URI,
    data: { "lat": e.latlng.lat, "lng": e.latlng.lng },
    dataType: 'json',
    success: function (d) {
        LoadPointDetails(d);
        
    },
    error: function () {
        if (debugState) console.log("Error in call for chart data.");
    }
});

}


function LoadPointDetails(obj) {

currPointDet = obj;
var objParsed = JSON.parse(obj);

console.log(objParsed);
...
}

My console log returns the following Json:

{"general" : {"id" : 45423920, "timestamp" : "2019-06-30T23:41:38.2", "run_id" : 29211, "track_id" : 10317, "link_id" : 983544872, "dir" : "T", "vehicle_name" : "Transporter", "prev_id" : 45423919, "next_id" : 45423921, "track_start" : "2019-06-30T23:31:12.7", "track_end" : "2019-07-01T00:34:15.6", "img_path" : "https://xyz-abc.s3-ap-southeast-2.amazonaws.com/somecode/1/123444.jpg", "notes" : null, "flag" : null}, "spatial" : {"lat" : -23.7830482, "lng" : 133.877221, "bearing" : 165, "speed_can_kmh" : 82, "speed_sat_kmh" : 81, "vert_velocity" : 0}, "line_data" : {"line_0_type_l" : "solid", "line_0_type_r" : "dashed", "line_0_qual_l" : "excellent", "line_0_qual_r" : "high", "line_0_width_l" : 0.13, "line_0_width_r" : 0.16, "line_1_type_l" : "solid", "line_1_type_r" : "solid", "line_1_width_l" : 0.14, "line_1_width_r" : 0.21, "line_2_type_l" : "dashed", "line_2_type_r" : "dashed", "line_2_width_l" : 0.00, "line_2_width_r" : 0.00, "ldw_left_on" : false, "ldw_right_on" : false, "ldw_off" : false, "ldw_left_avail" : true, "ldw_right_avail" : true}, "sign_data" : {"sign_type_1" : null, "sign_type_2" : null, "sign_type_3" : null, "sign_type_4" : null, "sign_type_5" : null, "sign_type_6" : null, "sign_type_7" : null}, "previous_sign_data" : {"sign_type_1" : 9, "sign_type_2" : 9, "sign_type_3" : 0, "sign_type_4" : 0, "sign_type_5" : 0, "sign_type_6" : 0, "sign_type_7" : 0}, "GeoJson" : {"type":"Feature","geometry":{"type":"Point","coordinates":[133.877221,-23.7830482]},"properties":{"id":45423920}}}

but when i try to access objParsed.general it is undefined I want to read img_path.

What am I missing?

1
  • If I misunderstood your requirement in some place, pls kindle let me know... Commented May 31, 2022 at 8:51

2 Answers 2

0

maybe you can get it directly:

function LoadPointDetails(obj) {
    var img = obj.general.img_path;
    alert(img);
}

In my test, I have an api:

public IActionResult getData()
{
    var b = new { id = "45423920", img_path = "https://xyz-abc.s3-ap-southeast-2.amazonaws.com/somecode/1/123444.jpg" };
    var c = new { lat = -23.7830482, lng = 133.877221 };
    var a = new { general = b, spatial = c };
    return Json(a);
}

Then my Ajax call:

$("#btn3").click(function() {
    $.ajax({
        type: "GET",
        url: 'https://localhost:7151/home/getData',
        data: { "lat": 111, "lng": 222 },
        dataType: 'json',
        success: function (d) {
            LoadPointDetails(d);
        },
        error: function () {
            if (debugState) console.log("Error in call for chart data.");
        }
    });
})

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

0

I found my answer here

My JSon was double encoded:

function LoadPointDetails(obj) {

currPointDet = obj;
var objParsed = JSON.parse(obj.trim());
var obj2 = JSON.parse(objParsed);

console.log(obj2.general);
}

This worked!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.