【问题标题】:How to parse JSON array using Jersey Rest Webservices and Java如何使用 Jersey Rest Webservices 和 Java 解析 JSON 数组
【发布时间】:2014-01-26 04:59:07
【问题描述】:

我从 iOS 客户端获取 Json 数组,并希望使用 Java、jersey 和 Gson 在服务器端解析 Json。我正在从 iOS 以 POST 方法发送 JSON 数组。我想使用 json 但坚持如何将 json 数据保存在 Java 类中。这是我的 Json 数组的结构

{
    "friendList": [
      {"id": 1, "username": "user1", "name":"person1", "friendUsername":"fUser1", "friendName":"fName1"},
      {"id": 2, "username": "user2", "name":"person2", "friendUsername":"fUser2", "friendName":"fName2"},
      {"id": 3, "username": "user3", "name":"person3", "friendUsername":"fUser3", "friendName":"fName3"},...
    ]
}

这是我的网络服务类

@Path("/FriendsList")
public class RestWebServicesAPI {


     @POST
     @Path("/friends")
     @Consumes(MediaType.APPLICATION_JSON)
     public Friends saveFriedList(Friends friend, @Context HttpServletRequest request) {

        // Don't know how to parse json array????

     }


}

这是我的朋友班

import java.util.List; 

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 

Public Class Friends {

    private String id; 
    private String username; 
    private String name; 
    private String friendUsername; 
    private String friendName;  

    public Friends() { 
    } 

   //getter setter methods

} 

【问题讨论】:

    标签: java json web-services jersey arrays


    【解决方案1】:

    请关注以下来源

    @POST
    @Path("/friends")
    @Consumes(MediaType.APPLICATION_JSON)
    public Friends saveFriendList(Friends friends){
     // saveFriend function should have business logic to store your data in db
     friends= saveFriend(friends);
    }
    

    【讨论】:

    • 谢谢..我不明白 saveFriend(friends),你的意思是我需要在 Friends 类中创建 saveFriend 方法,该方法接受朋友对象并将数据保存在数据库中?你能帮我写一些 Friends 类的代码吗?
    【解决方案2】:

    我认为你必须这样做:

    @Path("/FriendsList")
    public class RestWebServicesAPI{
    
    @POST
    @Path("/friends")
    @Consumes(MediaType.APPLICATION_JSON)
    public Friends saveFriendList(final String json){
        Gson gs = new Gson();
        Friends [] n = gs.fromJson(json, Friends [].class);
    
    }
    //ALTERNATIVE
    @POST
        @Path("/friends")
        @Consumes(MediaType.APPLICATION_JSON)
        public Friends saveFriendList(final Friends[] friends){
    
    
        }
    

    【讨论】:

    • 如何将每个json值映射到friends类中的变量?
    • 如果您想在休息服务中解析 json,我编辑的答案可能有效
    • 在我的代码的第一种情况下,得到一个 json,它使用 GSON 解析在一个 Friends 数组中(GSON 自动解析);在第二个 Rest 中自动解析在 Friends 数组中接收到的 Json
    • 我的 Friends 类代码是否正确,还是我需要将其与 JSON 匹配?
    • json中的var名和param名必须一致,这是唯一条件
    猜你喜欢
    • 1970-01-01
    • 2014-01-23
    • 2012-04-18
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多