我使用Angular作为我的应用程序的前端。对于后端,我使用glassfish。我目前使用Http GET动词来获取一个带有id、名称和地址的JSON对象。我只想获取对象的名称,如何在typescript文件中实现?如何获取rest服务器最新添加的对象的名称?
我想从对象中获取restaurantName:
{ restaurantId: 1, restaurantName: 'Mcdonalds', restaurantAdres: 'Kalverstraat 5' },
从rest服务器检索对象的代码:
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;
}
发布于 2019-06-05 09:09:25
首先,我会创建一个类,也许还会创建一个接口,以便在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拼写错误,这将需要完全匹配。所以我会纠正后端。
https://stackoverflow.com/questions/56452857
复制相似问题