简体   繁体   English

在javascript中解析python json响应

[英]Parsing python json response in javascript

I am parsing json response in jquery. 我在jquery中解析json响应。

console.log(response) gives console.log(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%"}]}

I trying to parse this json into variable like this: 我试图将这个json解析成这样的变量:

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); val res = JSON.parse(response);

What mistake I am doing here? 我在这里犯什么错误?

Change val to var : val更改为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". 首先,您需要将“ val”更改为“ 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/ 这是一个小提琴: https : //jsfiddle.net/mckinleymedia/pc2q917f/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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