开发者

Array of JSON Objects

I am trying to re-implement a page using JSON instead of some 2-dim开发者_开发问答ensional 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.


// 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; });


First of all, this is not JSON at all, you are just using Javascript objects. JSON is a text format for representing objects, there is no such thing as a "JSON object".

You can create a constructor for your objects like this:

function Restaurant(location, city_state, phone, distance) {
  this.location = location;
  this.city_state = city_state;
  this.phone = phone;
  // here you can add some logic for the distance field, if you like:
  this.distance = distance;
}

// create an array restaurants
var restaurants = [];
// add objects to the array
restaurants.push(new Restaurant("123 Road Dr", "MyCity ST", "555-555-5555", 0));
restaurants.push(new Restaurant("123 Road Dr", "MyCity ST", "555-555-5555", 0));
restaurants.push(new Restaurant("123 Road Dr", "MyCity ST", "555-555-5555", 0));


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.


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜