无法将数组从Angular 2 typescript传递到Spring Java
我正在尝试从我的typescript传递一个字符串数组无法将数组从Angular 2 typescript传递到Spring Java,java,angular,typescript,spring-boot,Java,Angular,Typescript,Spring Boot,我正在尝试从我的typescript传递一个字符串数组 tmp : Array<string> = []; 这有什么区别吗? 比如将字符串传递到八位字节,或者我必须做一些转换吗 对不起,如果我有很多问题,我也在努力调试和学习更多关于它 对于您的客户,将您的数据直接放在POST的正文上: public passingOfValues( test : Array<string> ) : Observable<Array<string>> {
tmp : Array<string> = [];
这有什么区别吗?
比如将字符串传递到八位字节,或者我必须做一些转换吗
对不起,如果我有很多问题,我也在努力调试和学习更多关于它 对于您的客户,将您的数据直接放在POST的正文上:
public passingOfValues( test : Array<string> ) : Observable<Array<string>> {
let headers = new Headers({ 'Content-Type': 'application/json'} );
let options = new RequestOptions({ headers: headers);
let response = this.http.post(this.basePath + this.modulePath + '/getArrayValue',
test, options)
.map(this.extractData)
.catch(this.handleError);
return response;
}
对于您的客户,请将您的数据直接放在POST的正文上:
public passingOfValues( test : Array<string> ) : Observable<Array<string>> {
let headers = new Headers({ 'Content-Type': 'application/json'} );
let options = new RequestOptions({ headers: headers);
let response = this.http.post(this.basePath + this.modulePath + '/getArrayValue',
test, options)
.map(this.extractData)
.catch(this.handleError);
return response;
}
大多数开发人员都喜欢JSON数据作为请求,这在RESTful API中是一个很好的实践。为什么? JSON格式是
{key1:value1,key2:value2,…}
你通过了
this.http.post(this.basePath+this.modulePath+'/getArrayValue',{'test':您的实际数组})
从前端开始。httpClient.post(url、body、options?
必须包含url
和body
。如何在后端获得它?既然你只有身体
public ResponseEntity<?> getArrayValues(@RequestBody List<String> test) {
// codes
}
内部控制器
public ResponseEntity<?> getArrayValues(@RequestBody List<TestTmpConverter> myJson ) {
List<TestTmpConverter> test=myJson.getTest();
List<TestTmpConverter> tmp=myJson.getTmp();
// Do your work
}
public ResponseEntity getArrayValue(@RequestBody List myJson){
List test=myJson.getTest();
List tmp=myJson.getTmp();
//做你的工作
}
我只展示了一种方法。有很多方法可以将数据传递到后端,比如
@RequestParam、@PathVariable等。我觉得现在您了解了如何传递数据。大多数开发人员都喜欢将JSON数据作为请求,这是RESTful API中的一个良好实践。为什么?
JSON格式是{key1:value1,key2:value2,…}
你通过了
this.http.post(this.basePath+this.modulePath+'/getArrayValue',{'test':您的实际数组})
从前端开始。httpClient.post(url、body、options?
必须包含url
和body
。如何在后端获得它?既然你只有身体
public ResponseEntity<?> getArrayValues(@RequestBody List<String> test) {
// codes
}
内部控制器
public ResponseEntity<?> getArrayValues(@RequestBody List<TestTmpConverter> myJson ) {
List<TestTmpConverter> test=myJson.getTest();
List<TestTmpConverter> tmp=myJson.getTmp();
// Do your work
}
public ResponseEntity getArrayValue(@RequestBody List myJson){
List test=myJson.getTest();
List tmp=myJson.getTmp();
//做你的工作
}
我只展示了一种方法。有很多方法可以将数据传递到后端,比如@RequestParam、@PathVariable等。我觉得您现在了解了如何传递数据。您可以更新后端数据的获取方式吗?完成!这些信息够了吗?感谢@DaveyDaveDave的迅速行动!非常感谢您能更新您如何在后端获取数据吗?完成!这些信息够了吗?感谢@DaveyDaveDave的迅速行动!真的很感激,我可以知道把它直接放在大括号里和放在大括号里的区别吗{}?格式会不同:没有{}
,你会发布[value1,value2,value3]
,有了它们,{“test”:[value1,value2,value3]}
@mbojko我会明确地测试你的建议!还有一个快速的问题,如果我的函数接受两个值怎么办?最初我还做了{“test”:test,“tmp”:tmp},在这个原因中,如果test是一个字符串,它将变成{“test”:value}?如果我不使用大括号,它将是value@RequestBody String[]test
。对于上面的问题,我们只能在post方法中传递一个主体。因此,如果我们将这两个varible都定义为JSON格式,我们可以轻松地将JSON fromat转换为您定义的test和tmp的两个值。一个可以作为参数随post一起传递的方法method@OpkkoLim使用[]表示直接传递数组。{}表示您正在传递一个对象(在您的情况下,对象中有数组)。我可以知道直接将它放在大括号中与放在大括号中的区别吗{}?格式将不同:如果没有{}
,您将发布[value1,value2,value3]
,并且使用它们,{“test”:[value1,value2,value3]}
@mbojko我一定会测试你的建议!还有一个快速的问题,如果我的函数接受两个值怎么办?最初我还做了{“test”:test,“tmp”:tmp},在这个原因中,如果test是一个字符串,它将变成{“test”:value}?如果我不使用大括号,它将是value@RequestBody String[]test
。对于上面的问题,我们只能在post方法中传递一个主体。因此,如果我们将这两个varible都定义为JSON格式,我们可以轻松地将JSON fromat转换为您定义的test和tmp的两个值。一个可以作为参数随post一起传递的方法method@OpkkoLim使用[]表示直接传递数组。{}意味着你正在传递一个对象(在你的例子中,对象的内部是数组)!但是很好的解释,我需要这个,有一件事,从你的方法,你正在传递一个json对象,对吗?如果是这种情况,我在ts文件中在何处以及如何声明这个json对象?有很多方法。您可以让x={key1:value1,key2:value2}
像硬编码一样。或者使用属性定义类/接口。然后将该值设置为properties,它会自动生成一个json对象对不起,您的回复太晚了@varman,您的评论让我意识到我有多么缺乏知识!我一定会在这方面做更多的研究。谢谢虽然我使用了不同的方法来解决我的代码,但你的评论确实帮助我愉快地理解了一些东西,如果你需要任何帮助,请向我挥手,正如我和你所说,有很多方法可以解决所有问题。快乐的Codinghy varman这对我来说是新的!但是很好的解释,我需要这个,有一件事,从你的方法,你正在传递一个json对象,对吗?如果是这种情况,我在ts文件中在何处以及如何声明这个json对象?有很多方法。您可以让x={key1:value1,key2:value2}
像硬编码一样。或者使用属性定义类/接口。然后将该值设置为properties,它会自动生成一个json对象对不起,您的回复太晚了@varman,您的评论让我意识到我有多么缺乏知识!我一定会在这方面做更多的研究。谢谢虽然我使用了不同的方法来解决我的代码
public ResponseEntity<?> getArrayValues(@RequestBody List<String> test) {
// codes
}
class TestTmpConverter{
List<String> test;
List<String> tmp;
//No-argument constructors & Argument constructors
//Getters
}
public ResponseEntity<?> getArrayValues(@RequestBody List<TestTmpConverter> myJson ) {
List<TestTmpConverter> test=myJson.getTest();
List<TestTmpConverter> tmp=myJson.getTmp();
// Do your work
}