Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I'm trying to parse a JSON file located on my computer. I want to parse it. The JSON file has this structure:

{
  "sites": {
    "site": [
      {
        "id": "01",
        "name": "Sito 1",
        "src": "localhost/root/coupon/sito1",
        "expiryDate": "29 Ago 2013"
      },
      {
        "id": "02",
        "name": "Sito 2",
        "src": "localhost/root/coupon/sito2",
        "expiryDate": "30 Ago 2013"
      },
      {
        "id": "Sito 3",
        "name": "Sito 3",
        "src": "localhost/root/coupon/sito2",
        "expiryDate": "31 Ago 2013"
      }
    ]
  }
}

In my html I import the jQuery library and I made a function that will load when the page is loaded. The code is below:

<!DOCTYPE html>
<html lang="it">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>  
        <title>Lista coupon</title>
        <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
        <script type="text/javascript" charset="utf-8">
            function loadJson() {
                window.alert("Carico il contenuto del file JSON per popolare la lista");
                $(document).ready(function()
                    {
                        $.getJSON('data.json', function(json) {
                            console.log(json);
                        });
                    });
                }
        </script>
    </head>
    <body onload="loadJson();">
        <div id="header">
            <h1>Lista coupon salvati</h1>
        </div>
        <div id="content">
            <p>Di seguito trovi tutte le promozioni salvate</p>

        </div>
        <div id="footer">

        </div>
    </body>
</html>

Now I saw on firebug console that it can read correctly the JSON file, but I don't know how to parse this JSON. I searched in google, but I found a lot of example that use a remote JSON. Can you help me to understand how to parse a local JSON file? Thank you

PS: note the site I post on here it's made for mobile browser.

share|improve this question
 
getJson makes a HTTP call to the server not to your computer. Read the documentation api.jquery.com/jQuery.getJSON –  Liam Jul 30 at 10:21
 
do a console.log on the 'obj'-variable and check how it's built. Will make you understand how you should use it. –  ninja Jul 30 at 10:21
add comment

2 Answers

up vote 3 down vote accepted

getJSON will parse it for you.

Just remove the var obj = $.parseJSON(json); line (since that will stringify the object and try to parse it as JSON (which it won't be)).

share|improve this answer
 
Ok i removed it, but now how I can access to the object? Now I want to "capture" the entry "name" and "src" –  lucgian84 Jul 30 at 10:23
 
json is the object. Access it like any other. (json.sites.etc) –  Quentin Jul 30 at 10:24
 
so I've to do simply json.name and json.src to get the name and the link? I tried it with an alert, but it says me undefined... –  lucgian84 Jul 30 at 10:26
 
No, since name and src are not properties of the object stored in json. You have to drill down the hierarchy. You might want to read Objects in JavaScript. –  Quentin Jul 30 at 10:27
 
use json.sites.site[0].src ,json.sites.site[1].src –  Sharad Jul 30 at 10:28
show 1 more comment

I don't think you need to parse the json. It will automatically parse the json since you are using $.getJSON().

share|improve this answer
1  
use json.sites.site[0].src ,json.sites.site[1].src –  Sharad Jul 30 at 10:28
 
Thank you too!! –  lucgian84 Jul 30 at 10:29
 
Now how I can put the value of name and src in an array? It's right to use $.each? –  lucgian84 Jul 30 at 10:35
1  
Yes it is correct way. –  Sharad Jul 30 at 10:37
2  
$.each(json.sites.site,function(index,value){ alert(value.src);}) –  Sharad Jul 30 at 10:41
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.