16

How can i access this response from server using javascript. This is the json encoded data.

      [{"cid":"1234","city":"value1","district":"value2","state":"value3"}]

Thanks in advance.

This is the ajax code:

 function cityauto(ctid){
     var city = document.getElementById(ctid);
     if(city.value.length > 3){
         $.ajax({
             type: "GET",
             url: "city.php",
             data: {term: city.value},
             success: function (data){
                 alert(data);
             }
         });
 }

Html code:

   <input type="text" name="city" id="cty" onblur="cityauto(this.id);" />

onblur i am getting above response from php file in alert box now i need to access that values in javscript.

NiksD
  • 485
  • 1
  • 4
  • 8

3 Answers3

20

Assuming the JSON is returned as a string:

var data = '[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]';
// Parse the data as json
var obj = JSON.parse(data)
// Access the ojbect:
console.log(obj);
console.log(obj[0]);     // == Object {cid: "1234", city: "value1", district: "value2", state: "value3"} 
console.log(obj[0].cid); // == 1234

The [0] is to access the first object inside the JSON, which is an array. Then you just add .name, where 'name' is the name of the variable you want. (like .cid).

If the JSON is already a object, you can skip the JSON.parse():

var obj = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];

And access it like the example above.
(In that case, this question is more about accessing JavaScript objects, instead of JSON)

In your case, you can access the data like this:

success: function (data){
    var obj = JSON.parse(data);
    // Do stuff with `obj` here.
}
Cerbrus
  • 70,800
  • 18
  • 132
  • 147
3

If this is the only response data then you can access as:

var data = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];
console.log(data[0].cid);

# "1234"

Correction

var data = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];

var obj = JSON.parse(data);
console.log(obj[0].cid);

# "1234"
TheTechGuy
  • 16,560
  • 16
  • 115
  • 136
Dhanu Gurung
  • 8,480
  • 10
  • 47
  • 60
-1

If you recive that response from a page then you can try $.getJSON method using jQuery

$.getJSON("yourwebsite.com/yourpage", function( data ) {
      console.log(data);
});

If you want to use it as a variable, from plain JSON (not accesing to it from another page/request)

var data = '[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]';

Then you can use

$.each( data, function( key, val ) {
          console.log(key + ":" + val);
  });

to access json data in a foreach routine...

Or data[key].innerykey for example data[0].cid 0 is your first array of data, and .cid is the key that you want to retrieve, it can be cid city or whatever you want, if you have more, you can use different number in data[X]

Robert W. Hunter
  • 2,895
  • 7
  • 35
  • 73