【问题标题】:Vue Js: how to view objects fron JSON APIVue Js:如何从 JSON API 查看对象
【发布时间】:2022-01-24 17:24:17
【问题描述】:

在我的 Vue Js 项目中,我有来自 API 的数据,在 JSON 中存储了对象,我无法在我的代码中查看它们。我尝试使用 this.obj =JSON.stringify(this.Flats);,当我使用 console.log 时,我可以看到我所有的数据,但我无法遍历它们以查看 payment 对象

BuildingsService.getAllFlats().then((response) => {
            this.Flats = response.data.response;

       
             this.obj =JSON.stringify(this.Flats);
             console.log(this.Flats,"dataaa")

           
        });
  <div v-for="(object,index) in obj" :key="index"> //didn't work 
                               <span> {{object.flat_number}}   </span>

                                      <span > {{object.payment}}   </span>
                                </div>

【问题讨论】:

    标签: javascript json vue.js object


    【解决方案1】:

    您正在捕获 Flats 中的数组,但您正在使用 JSON.stringify 并将结果字符串存储在 obj...然后记录该数组但希望遍历该字符串?

    试试这个

    BuildingsService.getAllFlats().then((response) => {
        this.Flats = response.data.response;
        this.obj = this.Flats // transforming to a string and duplicating the variable seems kinda pointless btw
    });
    

    或者只是遍历你已经存储的数组

    <div v-for="(object,index) in Flats" :key="index"> // should work
    

    【讨论】:

    • 这在显示 {{object.payment}} 后给了我{ "cash_payment": { "paid_amount": "100000", "date": "2021-12-23" } },我想要显示对象付款中的数据,我想显示paid_amount
    • 然后你需要使用它的命名路径访问该属性,即{{ object.payment.cash_payment.paid_amount }}
    • 不工作:/它给出了无法读取支付属性
    • 我只能假设您的 Flats 数组中有不包含您要查找的属性的对象,在这种情况下,您需要在每个嵌套属性周围使用 if 块您尝试访问的内容。像v-if="object.payment.cash_payment" 之类的东西,你正在使用 Vue :)
    • 属性存在...但是 API 结构包含类似这样的数据 ` Status: "", price: "", city: "", paymentCash: { cash_payment: {paid_amount: "", date: "", }, },` 显示paymentcash 是一个对象,我的问题是我无法在该对象内显示数据,但我也可以轻松显示状态、价格和城市
    【解决方案2】:

    无法通过 cmets 添加,但可能

    无法读取支付属性

    错误,因为数组中有一些不包含支付对象的对象。 我相信实施v-if="object.payment" 会解决您的问题。

    【讨论】:

    • 这显示了 JSON 数组 { "cash_payment": { "paid_amount": "100000", "date": "2021-12-23" } } { "cash_payment": { "paid_amount": "500,000", "date": "2021-12-22" } } 中嵌套对象的数据
    • 当我想访问paid_amount时,完整的JSon结构是:{ "status": "sold", "price": "100000", "currency": "USD", "_id": "61c21fa6f650480b7630badf", "flat_number": 1, "description": "This is a newly created flat.", "city": "duh", "payment": { "cash_payment": { "paid_amount": "100000", "date": "2021-12-23" } },
    • 尝试将&lt;span&gt; {{object.payment}} &lt;/span&gt;替换为&lt;div v-if="object.payment"&gt; &lt;span&gt; {{ object.payment.cash_payment.paid_amount }} &lt;/span&gt; &lt;/div&gt;这个
    • 无法读取 cash_payment 的属性:/
    • 如果您可以读取有条件的付款值,则您有不包括付款的对象。此外,您还有一些不包括 cash_payment 的付款对象。也为它创造条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多