Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
在java中使用jersey中的json对象数组_Java_Web Services_Jersey - Fatal编程技术网

在java中使用jersey中的json对象数组

在java中使用jersey中的json对象数组,java,web-services,jersey,Java,Web Services,Jersey,要在jersey中使用单个对象,我有如下方法 @POST @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces(MediaType.APPLICATION_JSON) public Response postPerson(MultivaluedMap<String, String> personParams){ ResponseBuilder response = Response.ok(); retu

要在jersey中使用单个对象,我有如下方法

 @POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response postPerson(MultivaluedMap<String, String> personParams){
    ResponseBuilder response = Response.ok();
    return response.build();
    }

    its working well.
@POST
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
@产生(MediaType.APPLICATION_JSON)
公共响应postPerson(多值映射personParams){
ResponseBuilder response=response.ok();
返回response.build();
}
它工作得很好。
我的疑问是,我如何才能使用泽西岛上的物品列表

    some thing like this 



 @POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
    public Response postPerson(List<Person> person){

     ResponseBuilder response = Response.ok();
    return response.build();

      }
像这样的东西 @职位 @使用(MediaType.APPLICATION\u FORM\u URLENCODED) @产生(MediaType.APPLICATION_JSON) 公众回应后期人员(名单人员){ ResponseBuilder response=response.ok(); 返回response.build(); }
我在谷歌上搜索了一下,但没有找到任何有效的示例。

您似乎希望将表单数据作为列表传递:

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
    public Response postPerson(@FormParam("person") List<String> person){

     ResponseBuilder response = Response.ok();
    return response.build();

      }

<html><body>
<form action="http://localhost:9998/myresource" method="POST">
<input type="checkbox" name="person" value="a">A</input>
<input type="checkbox" name="person" value="b">B</input>
<input type="checkbox" name="person" value="c">C</input>
<input type="submit">OK</input>
</form>
</body></html>
@POST
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
@产生(MediaType.APPLICATION_JSON)
公众回应postPerson(@FormParam(“人员”)列表人员){
ResponseBuilder response=response.ok();
返回response.build();
}
A.
B
C
好啊
类似地,对于
Person
对象,您必须映射different属性,以便它可以发布
Person
列表

来源:这对我很有用。

我使用jersy作为RESTful Web服务,使用angularJS同时发布所有todo对象使用person对象同时更新数据

//Define an angular module for our app
var sampleApp = angular.module('sampleApp', ['ngRoute','ngResource']);

sampleApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/AddNewOrder', {
        templateUrl: 'add_order.jsp',
        controller: 'AddOrderController'
    }).
when('/TestArray', {
        templateUrl: 'list.html',
        controller: 'TestArrayController'
    }).    



      }).
      otherwise({
        redirectTo: '/AddNewOrder'
      });
}]);
sampleApp.controller( 'TestArrayController', function ( $scope, $location,$http,$resource) {

var array=new Array();
var postObject1 = new Object();
postObject1.description = "testDesc1";
postObject1.summary = "testSummary1";
array.push(postObject1);
var postObject2 = new Object();
postObject2.description = "testDesc2";
postObject2.summary = "testSummary2";
array.push(postObject2);

$http.post("/AngularJS/JerseyWebService/todo/arrayTest", array).success(function(data){
    //Callback function here.
    //"data" is the response from the server.
    $scope.updateMessage=data;
});
HTML页面

<html lang="en">
  <head>
    <title>AngularJS Routing example</title>
    <script src="jquery.min.js" type="text/javascript" language="javascript"></script>
    <script src="xml2json.js" type="text/javascript" language="javascript"></script>
    <script src="angular.js"></script>
    <script src="angularjs/angular-route.js"></script>
    <script src="angularjs/angular-resource.js"></script>
    <script src="app1.js"></script>    
    <script type="text/javascript">
     var jquery = $.noConflict();
</script>
  </head>

  <body ng-app="sampleApp">

    <div class="container">
        <div class="row">
        <div class="col-md-3">
            <ul class="nav">
                <!--<li><a href="#AddNewOrder"> Add New Order </a></li>
                <li><a href="#ShowOrders"> Show Orders</a></li>-->
                <li><a href="#TestArray">Test Array Update</a></li>

            </ul>
            <div>{{updateMessage}}</div>
        </div>
        <div class="col-md-9">
            <div ng-view></div>
        </div>
        </div>
    </div>


  </body>
</html>
web.xml条目

<servlet>
<servlet-name>JerseyWebService</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JerseyWebService</servlet-name>
<url-pattern>/JerseyWebService/*</url-pattern>
</servlet-mapping>

JerseyWebService
com.sun.jersey.spi.container.servlet.ServletContainer
1.
JerseyWebService
/JerseyWebService/*

我想在函数posterson中接收json对象数组,使用的语法是什么that@user869357:看看这个。。。
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
// JAX-RS supports an automatic mapping from JAXB annotated class to XML and JSON
// Isn't that cool?
public class Todo {
  private String summary;
  private String description;
  public String getSummary() {
    return summary;
  }
  public void setSummary(String summary) {
    this.summary = summary;
  }
  public String getDescription() {
    return description;
  }
  public void setDescription(String description) {
    this.description = description;
  }
public String toString(){
    return "{summary:"+summary+"description:"+description+"}";
}

} 
<servlet>
<servlet-name>JerseyWebService</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JerseyWebService</servlet-name>
<url-pattern>/JerseyWebService/*</url-pattern>
</servlet-mapping>