我将Angular用作应用程序的前端。对于后端,我使用glassfish。我目前使用Http GET动词获取具有ID,名称和地址的JSON对象。我只想获取对象的名称,如何在打字稿文件中进行处理?如何获得其余服务器的最新添加对象的名称?
我想从对象中获取restaurantName:
{ restaurantId: 1, restaurantName: 'Mcdonalds', restaurantAdres: 'Kalverstraat 5' },
从其余服务器检索对象的代码:
ngOnInit() {
this.http.get('http://localhost:8080/aquadine-jee/resources/restaurant')
.subscribe(
val => {
const restStr = JSON.stringify(val);
console.log(restStr);
);
后端代码:
@GET
@Produces("application/json")
public Response all(){
List<Restaurant> all = repositoryService.getAllRestaurants();
return Response
.status(200)
.header("Access-Control-Allow-Origin", "*")
.entity(all)
.build();
}
public List<Restaurant> getAllRestaurants() {
EntityManager em = entityManagerFactory.createEntityManager();
List<Restaurant> restaurants = em.createQuery("SELECT r FROM Restaurant r").getResultList();
em.close();
return restaurants;
}
@Entity
@Table(name = "restaurant")
@NamedQueries({
@NamedQuery(name = "Restaurant.findOne", query = "select m from Restaurant m where m.id = :id"),
@NamedQuery(name = "Restaurant.getAll", query = "select m from Restaurant m")
})
public class Restaurant implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
// @Column(name="naam")
// @NotBlank
// private String naam;
// @NotBlank
String restaurantName;
// @NotBlank
String restaurantAdres;
int restaurantId;
public Restaurant(){
}
public Restaurant(int restaurantId, String restaurantName, String restaurantAdres) {
this.restaurantId = restaurantId;
this.restaurantName = restaurantName;
this.restaurantAdres = restaurantAdres;
}
答案 0 :(得分:0)
首先,我将创建一个类以及一个接口,以在TypeScript中为您提供强类型对象:
然后,您可以从get请求中返回该对象作为该对象,并根据需要使用它,例如result.restaurantName
快速模拟一下外观(使用存根方法而不是http)is here:
简而言之:
Angular的类和接口:
export interface IRestaurant {
restaurantId: number;
restaurantName: string;
restaurantAddres: string;
}
export class Restaurant implements IRestaurant {
restaurantId:number;
restaurantName:string;
restaurantAddres:string;
}
然后是通过一种方法获取数据并实质上使用JSON作为对象的组件:
export class AppComponent {
favoriteRestaurant: IRestaurant;
retrieve(){
this.favoriteRestaurant = this.getRestaurant();
alert(this.favoriteRestaurant.restaurantName);
}
getRestaurant():IRestaurant {
var result: Restaurant = {
restaurantId: 1,
restaurantName: 'Mcdonalds',
restaurantAddres: 'Kalverstraat 5'
};
return result;
}
}
不过,让它对您更有用,将http.get方法更改为以下内容:
ngOnInit() {
this.http.get('http://localhost:8080/aquadine-jee/resources/restaurant')
.subscribe(
val:IRestaurant => {
this.favoriteRestaurant = val;
console.log(restStr.restaurantName);
);
您不想使用上面的JSON.stringify,因为那样会给您一个字符串! 此外,您的restaurantAddress拼写错误,需要完全匹配。所以我会更正后端。