通过 rest API 以 0 或 null 形式出现的值对本机/弹簧启动作出反应
Posted
技术标签:
【中文标题】通过 rest API 以 0 或 null 形式出现的值对本机/弹簧启动作出反应【英文标题】:values coming as 0 or null through rest API react native/spring boot 【发布时间】:2019-04-30 18:14:34 【问题描述】:我正在尝试将一些数据从我的前端(react native)发送到我的中间件(spring boot),由于某种原因,这些值是 0 和 null。通过邮递员发送完全相同的对象就可以了。我试过用“像"quizId":2
包围参数的名称,它也不起作用。我之前使用过这个确切的方法并取得了巨大的成功。我对这是如何发生的一无所知。任何帮助非常感谢。
端点:
void recordScore(@RequestBody Score score)
System.out.println(score);
serv.recordScore(score);
从 react native 发送时,上面 sysout 的控制台输出:
Score(quizId=0, staffId=0, totalScore=0.0, userQuizRecords=null, timeTaken=0, correctAns=0, takenDate=null)
使用邮递员时的控制台输出:
Score(quizId=3, staffId=405986, totalScore=30.0, userQuizRecords=[UserQuizRecord(id=0, staffId=405986, quizId=2, questionId=5, score=4, correctAns=true, takenDate=null), UserQuizRecord(id=0, staffId=405986, quizId=2, questionId=6, score=1, correctAns=false, takenDate=null), UserQuizRecord(id=0, staffId=405986, quizId=2, questionId=7, score=4, correctAns=true, takenDate=null), UserQuizRecord(id=0, staffId=405986, quizId=2, questionId=8, score=3, correctAns=false, takenDate=null)], timeTaken=400, correctAns=4, takenDate=null)
js:
let score =
quizId: 2,
staffId: 405986,
totalScore: 30,
userQuizRecords: [
staffId: 405986,
quizId: 2,
questionId: 5,
score: 4,
correctAns: true
,
staffId: 405986,
quizId: 2,
questionId: 6,
score: 1,
correctAns: false
,
staffId: 405986,
quizId: 2,
questionId: 7,
score: 4,
correctAns: true
,
staffId: 405986,
quizId: 2,
questionId: 8,
score: 3,
correctAns:false
],
timeTaken: 400,
correctAns: 4
获取:
return fetch(apis.recordScore,
method: 'POST',
headers:
'Accept': 'application/json',
'Content-Type': 'application/json',
,
body: JSON.stringify(
score:score
)
【问题讨论】:
【参考方案1】:您确定使用邮递员发送完全相同的数据吗?
这里可能出错了:
body: JSON.stringify(
score:score
)
尝试不使用包装分数对象
body: JSON.stringify(score)
我无法从此处看到您的分数定义,但我认为它没有被定义为具有 名为 score 的成员属性,所有字段都封装在该子字段中。
【讨论】:
【参考方案2】:你可以尝试在没有大括号的情况下对对象进行字符串化
body: JSON.stringify(score)
【讨论】:
以上是关于通过 rest API 以 0 或 null 形式出现的值对本机/弹簧启动作出反应的主要内容,如果未能解决你的问题,请参考以下文章
使用 OAuth2.0 或 Azure Active Directory 保护 REST API
如何在使用 AJAX、Django REST API 和 jQuery 以模式形式更新记录时显示外键字段名称而不是 ID