访问包含的对象

时间:2016-03-01 01:48:30

标签: json node.js loopbackjs

我有以下JSON对象,它是loopback模型(分类)的结果,与另一个模型(标签)有关系。

我打电话来获取分类是:

modClassification.findOne({ 
             where: { id: classificationid }, 
             include: 'labels' }, 
             function( err, classification ){ ...

这会返回类似

的分类
{ id: 'b01',
  title: 'population',
  country_id: 1,
  labels: 
   [ { column_id: 'b1',
       classification_id: 'b01',
       classification_title: 'population',
       dsporder: 1,
       label: 'Total_Persons_Males',
       country_id: 1,
       id: 1 },
     { column_id: 'b2',
       classification_id: 'b01',
       classification_title: 'population',
       dsporder: 2,
       label: 'Total_Persons_Females',
       country_id: 1,
       id: 2 } ] }

这就是我所期望的。

我现在需要遍历标签并访问它的属性,但这就是我被困住的地方。

classification.labels[0] = undefined..

我尝试过循环,每个以及我在网上找到的任何东西,但似乎无法找到每个标签属性。

有人可以告诉我我做错了什么/需要做什么吗?

由于

1 个答案:

答案 0 :(得分:1)

当您在findOne调用中包含相关模型时,您需要在访问相关记录之前对结果进行JSONify:

classification = classification.toJSON()

然后您应该能够按预期访问所包含的标签项目。

请参阅https://docs.strongloop.com/display/public/LB/Include+filter,特别是"访问包含的对象"部分。

注意,当您在数组中检索多个结果时,这不起作用。在这种情况下,您需要对数组中的每个项目执行toJSON()