Reputation: 8415
Fiddle: https://codepen.io/anon/pen/EvProJ?editors=1010
I'm trying to use a json object to set values and text stored in a JSON object
I can do it fine this way....
var myJSON = { name:"Michael", age:25, city:"Chicago" };
document.getElementById("demo").innerHTML = myJSON.name;
However, I'm having difficulty setting values and text stored in a JSON object. Like so...
var language = {
eng: {
hi: "Hello",
bye: "Goodbye"
},
es: {
hi: "Hola",
bye: "Adíos"
},
fr: {
hi: "Bonjour",
bye: "Au revoir"
}
};
console.log(JSON.parse(language.eng).hi);
Can someone explain what am I doing wrong and how can I set this text/values dynamically using this JSON object?
var language = {
eng: {
hi: "Hello",
bye: "Goodbye"
},
es: {
hi: "Hola",
bye: "Adíos"
},
fr: {
hi: "Bonjour",
bye: "Au revoir"
}
};
$('[data-language]').value = JSON.parse(language.eng).hi;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" data-language>
<p data-language></p>
Upvotes: 0
Views: 2634
Reputation:
You don't have to parse JSON as its already a JSON object.
Just do this language.eng.hi
Demo: https://codepen.io/dividapps/pen/OjMdoj
Upvotes: 1
Reputation: 1745
JSON.parse is used to convert a Json string to an object. However, language
is already an object.
If you want to convert your object to a Json string use the stringify method JSON.stringify(language)
.
Upvotes: 1