Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将数组从Angular 2 typescript传递到Spring Java_Java_Angular_Typescript_Spring Boot - Fatal编程技术网

无法将数组从Angular 2 typescript传递到Spring Java

无法将数组从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>> {

我正在尝试从我的typescript传递一个字符串数组

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

}