Harun Anwar
Harun Anwar

Reputation: 113

Loop through ajax response in jquery

I got the following ajax response.

{"ord_item_Json_string":"[{\"code\":\"1002\",\"item\":\"Diamond Softy\",\"size\":\"15 inch\",\"color\":\"Light Blue\",\"qty\":\"2\",\"price\":\"849.45\",\"amount\":\"1698.90\"},{\"code\":\"1001\",\"item\":\"sAMPLE\",\"size\":\"Cob\",\"color\":\"Naturtal\",\"qty\":\"5\",\"price\":\"434.05\",\"amount\":\"2170.25\"}]"}

now the problem is that i want to display only code and item fields & value but i am unable. please help me how to access that fields. my code is following.

$.ajax({
            url: base_url + 'order_jobcard/getOrderDetails/' + ord_id,
            type: "POST",
            data: JSON.stringify($('ord_id').serializeArray()),
            success: function (data) {
                $("#OrdItem").html(data);
                console.log(data);
                return true;
            },
            error: function () {
                alert('Not Working');
                $('#ord_buyer_pack_inst').empty();
            }

        });

Upvotes: 0

Views: 1133

Answers (3)

Bhushan Kawadkar
Bhushan Kawadkar

Reputation: 28513

try this: you can try below code where you can iterate over json array and read each attribute

$.ajax({
            url: base_url + 'order_jobcard/getOrderDetails/' + ord_id,
            type: "POST",
            data: JSON.stringify($('ord_id').serializeArray()),
            success: function (data) {
                var dataStr = "";
                var jsonData = data.ord_item_Json_string; // this is already json
                jsonData = JSON.parse(jsonData);//value need to parse
             for (var i = 0; i < jsonData.length; i++) {
               var ord= jsonData[i];
                console.log(ord.code);
                dataStr += ord.code;
              }
                $("#OrdItem").html(dataStr);
                console.log(data);
                return true;
            },
            error: function () {
                alert('Not Working');
                $('#ord_buyer_pack_inst').empty();
            }

        });

JSFiddle

Upvotes: 0

user3475088
user3475088

Reputation: 43

try the code below...in success callback you will be getting data in json object format. so just get value using its key.

 $.ajax({
    url: base_url + 'order_jobcard/getOrderDetails/' + ord_id,
    type: "POST",
    data: JSON.stringify($('ord_id').serializeArray()),
    success: function (jsonResponse) {


       var itemsList = jsonResponse.ord_item_Json_string;
       $.each(itemsList, function (index, value) {

           console.log(value.code + '--' + value.item);
        });
    },
    error: function (jqXHR, textStatus, errorThrown) {
        console.log("error");
    }
});

Upvotes: 0

hitesh makodiya
hitesh makodiya

Reputation: 437

Try this:

   
        var abc = {"ord_item_Json_string":"[{\"code\":\"1002\",\"item\":\"Diamond Softy\",\"size\":\"15 inch\",\"color\":\"Light Blue\",\"qty\":\"2\",\"price\":\"849.45\",\"amount\":\"1698.90\"},{\"code\":\"1001\",\"item\":\"sAMPLE\",\"size\":\"Cob\",\"color\":\"Naturtal\",\"qty\":\"5\",\"price\":\"434.05\",\"amount\":\"2170.25\"}]"}
        var a = JSON.parse(abc.ord_item_Json_string)
        $.each(a, function(index,value){
            console.log(value.code+'--'+value.item)
        });
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Upvotes: 1

Related Questions