6

I have some jQuery code which retrieves content using getJSON(). There are n JSON files, which are retrieved from the server as needed:

/json-content/data0.json

/json-content/data1.json

/json-content/data2.json

etc...

Instead, I want to store all the JSON in a single file to reduce the number of HTTP requests needed to retrieve the data.

What is the best way to combine the JSON files into one? If I concatenate the JSON files together, it no longer works with getJSON().

UPDATE - clarified my question

frankadelic
  • 20,543
  • 37
  • 111
  • 164

2 Answers2

4

Either as individual attributes or as an array

{
 "data1":{stuff for data1},
 "data2":{stuff for data2},
 "data3":{stuff for data3}
}

or

{"response":[
  {stuff for data1},
  {stuff for data2},
  {stuff for data3}]}
Jérôme Verstrynge
  • 57,710
  • 92
  • 283
  • 453
daveb
  • 41
  • 2
1

If you really want to reduce the number of HTTP requests from the client, one possible way is like this:

  1. Build a server side proxy that get JSon files from the third party data sources
  2. Merge your 3 JSon files in one single JSon file
  3. Make a single $.getJSON() call to your single JSon from client

To merge Json files, look at this post.

Community
  • 1
  • 1
systempuntoout
  • 71,966
  • 47
  • 171
  • 241