Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Array of JSON Objects

I am trying to re-implement a page using JSON instead of some 2-dimensional arrays.

What I am hoping to accomplish is get an array of objects. The objects would look like this:

{ // Restaurant
  "location" : "123 Road Dr",
  "city_state" : "MyCity ST",
  "phone" : "555-555-5555",
  "distance" : "0"
}

I want to create an array of these restaurant objects and populate the distance field with some logic, then sort the array based on the distance field.

Can I create an array of JSON objects or is there something else with JSON that accomplishes this goal?

Thanks very much for your help.

like image 549
Bring Coffee Bring Beer Avatar asked Jul 22 '11 14:07

Bring Coffee Bring Beer


2 Answers

// You can declare restaurants as an array of restaurant objects
restaurants = 
[
    {
        "location" : "123 Road Dr", 
        "city_state" : "MyCity ST", 
        "phone" : "555-555-5555", 
        "distance" : "1" 
    },
    {
        "location" : "456 Avenue Crt", 
        "city_state" : "MyTown AL", 
        "phone" : "555-867-5309", 
        "distance" : "0" 
    }
];

// Then operate on them with a for loop as such
for (var i = 0; i< restaurants.length; i++) {
    restaurants[i].distance = restaurants[i].distance; // Or some other logic.
}

// Finally you can sort them using an anonymous function like this
restaurants.sort(function(a,b) { return a.distance - b.distance; });
like image 123
nwellcome Avatar answered Sep 30 '22 22:09

nwellcome


Sure you can. It would look something like this:

{ "restaurants": [ 
    { "location" : "123 Road Dr", "city_state" : "MyCity ST", "phone" : "555-555-5555", "distance" : "0" } , 
    { "location" : "456 Fake St", "city_state" : "MyCity ST", "phone" : "555-123-1212", "distance" : "0" } 
] }

The outer field name of "restaurants" is not necessary of course, but it may help if you are including other information in the data you're transferring.

like image 36
Mike Avatar answered Sep 30 '22 23:09

Mike