Vue - 遍历具有嵌套对象的数组

Vue - Loop through an array with nested objects

我正在获取一个列表,我正在尝试循环它,其中有一个对象。我正在使用 vue,数组如下所示:

companies: [
  name: "company1"
  id: 1
  type: "finance"
  additionalData: "{"funder":"blabla","idType":5,"number":"2"}"
]

我的问题是访问 additionalData 中的不同数据。

这是我的进展:

        <div
            v-for="(company, idx) in companies"
            :key="idx"
        >
          <p class="font-weight-bold text-h6"> {{ company.name }} </p>
          <p class="font-weight-bold"> {{ company.additionalData.funder }} </p>
        </div>

这不起作用,我也尝试了循环内的循环。当我只打印出 {{ company.additionalData }} 时,我得到了整个对象。它与对象在字符串中有关吗?我可以做一个计算或什么来解决这个问题吗? :)

是的,你是对的,你不能在 html 中访问带有点符号的 json 属性。您可以使用 JSON.parse 解决这个问题,这会将您的 JSON 对象变成一个 JavaScript 对象,您可以在模板中访问该对象的属性。

companies: {
  name: "company1"
  id: 1
  type: "finance"
  additionalData: JSON.parse("{"funder":"blabla","idType":5,"number":"2"}")
}

看起来additionalData是一个包含JSON的字符串,所以尝试将字符串转换为对象。这样的事情应该有效:

<p class="font-weight-bold"> {{ JSON.parse(company.additionalData).funder }} </p>

语法问题

companies: [
  name: "company1"
  id: 1
  type: "finance"
  additionalData: {
    "funder": "blabla",
    "idType": 5,
    "number":"2"
  }
]