从 Java 脚本发送的 JSON 数据与在 Java Quarkus 服务中收到的 JSON 输入不同
The JSON data sent from Javascript is different than the JSON input received in Java Quarkus Service
我正在使用 Vuejs/Nuxtjs
开发一个简单的 Web 应用程序,它使用 Axios POST request
对 Java Quarkus Service
进行后端调用。在 POST request
中,我正在发送 JSON
数据。
我面临的问题是我发送的 JSON
数据与我在 Java Quarkus Service
.
中接收的数据有点不同
我在将 JSON 数据发送到 Java 服务之前放置了一个 console.log
,数据看起来像这样:
{
"person": {
"name": "abcd"
},
"animal": {
"name": "xyz"
}
}
我在开头放了一个 System.out
Java Service
,我收到的数据看起来像这样:
{
"inputTemplate": {
"person": {
"name": "abcd"
},
"animal": {
"name": "xyz"
}
}
}
正如我们所见,inputTemplate key
已添加,但 JavaScript
中没有出现。不知道为什么。
以下是来自 Vuejs Axios
的调用,此处 console.log
工作正常,inputTemplate key
未如上文 JSON 所述出现。
const headers = { 'Content-Type': 'application/json' }
const person = { name: 'abcd' }
const animal = { name: 'xyz' }
const inputTemplate = { person, animal}
console.log(JSON.stringify(inputTemplate, null, 4))
this.$axios.post('/generateTestData', { inputTemplate }, { headers })
.then((response) => {
console.log('Response : ' + JSON.stringify(response.data, undefined, '\t'))
})
.catch((error) => {
console.log('Error : ' + ' Unable to obtain data, Error : ' + error)
})
以下是 Java Quarkus service
我得到额外的 inputTemplate key
:
public class TestDataGeneratorResource {
@POST
@Path("/generateTestData")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String generateTestData(String inputTemplate) {
System.out.println(inputTemplate);
}
}
有人可以告诉我如何避免在 Java Service
中出现 inputTemplate
吗?
使用扩展运算符传递对象:this.$axios.post('/generateTestData', { ...inputTemplate }, { headers })
我正在使用 Vuejs/Nuxtjs
开发一个简单的 Web 应用程序,它使用 Axios POST request
对 Java Quarkus Service
进行后端调用。在 POST request
中,我正在发送 JSON
数据。
我面临的问题是我发送的 JSON
数据与我在 Java Quarkus Service
.
我在将 JSON 数据发送到 Java 服务之前放置了一个 console.log
,数据看起来像这样:
{
"person": {
"name": "abcd"
},
"animal": {
"name": "xyz"
}
}
我在开头放了一个 System.out
Java Service
,我收到的数据看起来像这样:
{
"inputTemplate": {
"person": {
"name": "abcd"
},
"animal": {
"name": "xyz"
}
}
}
正如我们所见,inputTemplate key
已添加,但 JavaScript
中没有出现。不知道为什么。
以下是来自 Vuejs Axios
的调用,此处 console.log
工作正常,inputTemplate key
未如上文 JSON 所述出现。
const headers = { 'Content-Type': 'application/json' }
const person = { name: 'abcd' }
const animal = { name: 'xyz' }
const inputTemplate = { person, animal}
console.log(JSON.stringify(inputTemplate, null, 4))
this.$axios.post('/generateTestData', { inputTemplate }, { headers })
.then((response) => {
console.log('Response : ' + JSON.stringify(response.data, undefined, '\t'))
})
.catch((error) => {
console.log('Error : ' + ' Unable to obtain data, Error : ' + error)
})
以下是 Java Quarkus service
我得到额外的 inputTemplate key
:
public class TestDataGeneratorResource {
@POST
@Path("/generateTestData")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String generateTestData(String inputTemplate) {
System.out.println(inputTemplate);
}
}
有人可以告诉我如何避免在 Java Service
中出现 inputTemplate
吗?
使用扩展运算符传递对象:this.$axios.post('/generateTestData', { ...inputTemplate }, { headers })