2016-07-22 11 views
1

Ich versuche, den Benutzer eine Auswahl treffen zu lassen und basierend auf dieser Auswahl bohre ich in die JSON-Daten und zeige ausgewählte Informationen an. Letztendlich möchte ich eine Dropdown-Auswahl in HTML und Event-Listener in Javascript erstellen, die dann abgerufen werden würde.Abrufen von JSON-Daten basierend auf Benutzerauswahl/Eingabeaufforderung

var userOcean = prompt("Will you be fishing in the gulf or atlantic ?"); 

var userFish = prompt("What fish do you want to look up?"); 

console.log(
    "\n\nfish: "+jsonObject.ocean_measure.userOcean.fish.userFish.name+ 
    "\n\nlength: "+jsonObject.ocean_measure.userOcean.fish.userFish.length+ 
    "\n\nclosed: "+jsonObject.ocean_measure.userOcean.fish.userFish.closed+ 
    "\n\nlimit: "+jsonObject.ocean_measure.userOcean.fish.userFish.limit+ 
    "\n\nremarks: "+jsonObject.ocean_measure.userOcean.fish.userFish.remarks 
    ); 

oben sind die Javascript und unten ist die JSON-Daten

var jsonObject = { 
"ocean_measure" : 
    { 
    "gulf": 
     { 
      "fish": { 
       "dolphin": { 
        "name": "Mahi-mahi", 
        "length": "none", 
        "limit": "10 per person or 60 per vessel whichever is less" 
       }, 
       "blackfin tuna": { 
        "name": "Blackfin Tuna", 
        "length": "not regulated", 
        "limit": "The default bag limit for all unregulated species is two fish or 100 pounds per day, whichever is more" 
       }, 
       "snook": { 
        "name": "Snook", 
        "length": "Not less than 28 inches total length (TL) or more than 33 inches TL", 
        "closed": "Dec. 1-end of February; May 1-Aug. 31", 
        "limit": "1 per harvester per day", 
        "remarks": "Snook permit required for harvest when saltwater license required. State regulations apply in federal waters. Illegal to buy or sell snook. Fish must remain in whole condition until landed ashore (heads, fins, and tails intact). Snatch hooks and spearing prohibited. Harvest prohibited by or with the use of any multiple hook in conjuction with live or dead bait." 
       } 
      } 
     } 
    , 
    "atlantic": 
     { 
      "fish": { 
       "dolphin": { 
        "name": "Mahi-mahi", 
        "length": "20 inches fork length", 
        "limit": "10 per person or 60 per vessel whichever is less" 
       }, 
       "blackfin tuna": { 
        "name": "Blackfin Tuna", 
        "length": "not Regulated", 
        "limit": "The default bag limit for all unregulated species is two fish or 100 pounds per day, whichever is more" 
       }, 
       "snook": { 
        "name": "Snook", 
        "length": "Not less than 28 inches total length (TL) or more than 32 inches TL", 
        "closed": "Dec. 15 to Jan. 31, June 1 to Aug. 31", 
        "limit": "1 per harvester per day", 
        "remarks": "Snook permit required for harvest when saltwater license required. State regulations apply in federal waters. Illegal to buy or sell snook. Fish must remain in whole condition until landed ashore (heads, fins, and tails intact). Snatch hooks and spearing prohibited. Harvest prohibited by or with the use of any multiple hook in conjuction with live or dead bait." 
       } 
      } 
     } 
    } 
} 

Ich habe es nicht gelungen, einen einfachen Weg zu finden userinput zu nehmen und einen Datenabruf mit aus JSON-Datei zu erstellen.

Antwort

0

Du hast es fast richtig, aber wenn Sie eine Variable verwenden möchten, während ein Objekt zugreifen Sie haben es auf diese Weise zu tun:

jsonObject.ocean_measure[userOcean].fish[userFish].name

Fest console.log Funktion:

console.log(
    "\n\nfish: "+jsonObject.ocean_measure[userOcean].fish[userFish].name+ 
    "\n\nlength: "+jsonObject.ocean_measure[userOcean].fish[userFish].length+ 
    "\n\nclosed: "+jsonObject.ocean_measure[userOcean].fish[userFish].closed+ 
    "\n\nlimit: "+jsonObject.ocean_measure[userOcean].fish[userFish].limit+ 
    "\n\nremarks: "+jsonObject.ocean_measure[userOcean].fish[userFish].remarks 
); 

JSFiddle

+0

Ich habe einen „Part Two“, wenn Sie auf diese kleine Anwendung ich Ich arbeite mit, wenn Sie möchten, hier ist der Link zu dieser Frage. http://stackoverflow.com/questions/38545522/html-select-value-passed-into-javascript-var-then-used-to-fetch-json – Carl

0

Um den Inhalt einer Variablen für den Zugriff auf die Eigenschaften eines Objekts zu verwenden, müssen Sie verwenden, was ist bracket notation genannt:

ocean_measure.gulf == ocean_measure["gulf"] 

Dies kommt von der Tatsache, dass in Javascript, Objekte wie Wörterbücher handeln, dass ihre Eigenschaften und Methoden können mit den Tasten zugegriffen werden, der Schlüssel die Namen der Eigenschaft oder Methode zu sein.

Um die Auswahl des Benutzers, als eine Variable vom Objekt ausgewählt werden, legen Sie die Variable in Klammern:

userOcean = "gulf" 
ocean_measure[userOcean] == ocean_measure["gulf"] 
Verwandte Themen