Reactjs 在React JS中解码json响应
我正在尝试解码从flask后端接收到的jsonified响应,如下所示:Reactjs 在React JS中解码json响应,reactjs,Reactjs,我正在尝试解码从flask后端接收到的jsonified响应,如下所示: if success_flag: waterdetails = res["Transaction_chain"] print(waterdetails) senderObject.mine_block(waterdetails) #print(senderObject.chain) r
if success_flag:
waterdetails = res["Transaction_chain"]
print(waterdetails)
senderObject.mine_block(waterdetails)
#print(senderObject.chain)
recieveObject.mine_block(waterdetails)
#print(recieveObject.chain)
print("Here as well")
if senderObject.is_chain_valid() and recieveObject.is_chain_valid():
adminDataBase.requestUpdate("_id",ObjectId(senderID),
{"Transaction_So_Far":senderObject.chain})
adminDataBase.requestUpdate("_id",ObjectId(recieverID),
{"Transaction_So_Far":recieveObject.chain})
print("Success!!!!!")
return(jsonify({"Yes":"Transaction Successful!"}))
下面是我的React JS onClick函数,用于选择响应:
onClick={async(e)=>{
e.preventDefault();
let pwd = prompt('Please enter your Password to confirm!');
const JSONString = {
email:props.Email,
_id:details._id,
Credits:details.Credits,
password:pwd
}
const response = await fetch('http://localhost:5000/make-a-transaction',{
method: 'POST',
headers:{
'Content-Type':'application/json'
},
body:JSON.stringify(JSONString)
});
console.log("Hello "+response.json());
}}
这是我的后台控制台:
下面是我的console.log输出:
有人能帮我以正确的方式解码json,以便我得到我的响应消息和正文吗?response.json()
实际上返回一个Promise
,如果正文作为json可解析,则解析为javascript对象,否则拒绝。(您也可以在记录的消息中看到这一点。)
要解决此问题并获取对象,您只需使用wait
,就像使用fetch
返回的承诺一样:
const response=wait fetch('http://localhost:5000/make-a-交易'{
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(JSONString)
});
const content=wait response.json();
log(“你好”,内容);
请注意,您应该始终为react中的异步函数添加错误处理(在本例中通常是try..catch块)。如果在异步函数中的某个地方发生错误,它将返回一个承诺,该承诺将被错误拒绝。但是,onClick
函数可能被某个不会计算返回值的函数调用。因此,错误将被默默地忽略,这在大多数情况下不是您想要的