Jersey は、デフォルトで object に返される単一の要素を変換します。しかし、クライアント側はjsonのデータがarraylistであることを期待しています
モデルクラスは LocationDetails
public class LocationDetails {
private String locationAccount;
private String locationName;
private String locationStreet;
private String locationPostcode;
}
LocationDetails の配列リストを持つ他のクラス LocationData として
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class LocationData {
private ArrayList<LocationDetails> Locations;
}
コントローラー クラスは、次のコードを使用して JSON に変換しています。
//Getting location and item along with barcodes
@POST
@Path("/getLocationAndItemData")
@Produces(MediaType.APPLICATION_JSON)
public LocationResponse getAlllocations(){
ArrayList<LocationDetails> locationDetailList = new ArrayList<LocationDetails>();
LocationDetails details = new LocationDetails();
//setting location account
details.setLocationAccount("10125");
locationDetailList.add(details);
}
次のコードはjsonを次のように返しますLocationData : {LocationDetails : {"LocationAccount","10125"}}
一方、私はそれを次のようにしたい:
LocationData : {LocationDetails : [{"LocationAccount","10125"}]}
クライアント側は、データがリスト内にあることを期待するためです。
ロジック全体を変更せずに型を変換する方法。私は jersey を使用しています。