简体   繁体   中英

Parsing python json response in javascript

I am parsing json response in jquery.

console.log(response) gives

{"result": [{"surprise": "24.79%"}, {"joy": "18.73%"}, {"anticipation": "14.61%"}, {"disgust": "10.54%"}, {"sadness": "8.75%"}, {"trust": "8.32%"}, {"anger": "8.12%"}, {"fear": "6.14%"}]}

I trying to parse this json into variable like this:

val res = JSON.parse(response);
document.getElementById("anger").innerHTML = res['result'][6]['anger'];
document.getElementById("disgust").innerHTML = res['result'][3]['disgust'];
document.getElementById("fear").innerHTML = res['result'][7]['fear'];
document.getElementById("joy").innerHTML = res['result'][1]['joy'];
document.getElementById("sadness").innerHTML = res['result'][4]['sadness'];
document.getElementById("surprise").innerHTML = res['result'][0]['surprise'];
document.getElementById("trust").innerHTML = res['result'][5]['trust'];
document.getElementById("anticipation").innerHTML = res['result'][2]['anticipation'];

which gives

Uncaught SyntaxError: Unexpected identifier

at val res = JSON.parse(response);

What mistake I am doing here?

Change val to var :

 var response = '{"result": [{"surprise": "24.79%"}, {"joy": "18.73%"}, {"anticipation": "14.61%"}, {"disgust": "10.54%"}, {"sadness": "8.75%"}, {"trust": "8.32%"}, {"anger": "8.12%"}, {"fear": "6.14%"}]}'; var res = JSON.parse(response); document.getElementById("anger").innerHTML = res['result'][6]['anger']; document.getElementById("disgust").innerHTML = res['result'][3]['disgust']; document.getElementById("fear").innerHTML = res['result'][7]['fear']; document.getElementById("joy").innerHTML = res['result'][1]['joy']; document.getElementById("sadness").innerHTML = res['result'][4]['sadness']; document.getElementById("surprise").innerHTML = res['result'][0]['surprise']; document.getElementById("trust").innerHTML = res['result'][5]['trust']; document.getElementById("anticipation").innerHTML = res['result'][2]['anticipation']; 
 <div id="anger"></div> <div id="disgust"></div> <div id="fear"></div> <div id="joy"></div> <div id="sadness"></div> <div id="surprise"></div> <div id="trust"></div> <div id="anticipation"></div> 

First you need to change "val" to "var". Then here's how I'd do this:

res.result.forEach( function(elem){
    for (var e in elem){
        $('.' + e).html(elem[e]);
    }
});

Here's a fiddle: https://jsfiddle.net/mckinleymedia/pc2q917f/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM