【问题标题】:how i get title from following response [closed]我如何从以下回复中获得标题[关闭]
【发布时间】:2021-03-06 17:07:08
【问题描述】:

如何从以下 json 响应中获取标题或正文?

{
    "message": "All Books",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 2,
                "title": "The Quran",
                "slug": "the-quran",
                "body": "The Holy Quran",
                "book": "/storage/books/1602685137.pdf",
                "cover": "/storage/covers/1602685137.jpg",
                "os": "both",
                "price_ios": 0,
                "price_android": 0,
                "created_at": "2020-10-14T14:18:57.000000Z",
                "updated_at": "2020-10-14T14:18:57.000000Z"
            }
        ],
        "first_page_url": "https://book.test/api/v1/books?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https://book.test/api/v1/books?page=1",
        "links": [
            {
                "url": null,
                "label": "Previous",
                "active": false
            },
            {
                "url": "https://book.test/api/v1/books?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "https://book.test/api/v1/books",
        "per_page": 15,
        "prev_page_url": null,
        "to": 1,
        "total": 1
    }
}

【问题讨论】:

  • 请不要简单地重复单词来绕过代码/文本比例限制。相反,请添加有用的信息,例如您已经尝试过的内容以及它对您不起作用的原因。
  • JSON.parse() 可能对您有用。
  • ????好的 。接下来,如果它说需要更多文字,我会尝试这些东西
  • 我正在使用 axios 来获取响应:喜欢 (response.data) 给予所有响应。但我需要标题,正文..等
  • 要从提供的结构中访问标题,请使用data.data[0].title

标签: javascript arrays json object response


【解决方案1】:

假设json存储在一个变量res中。

由于第二个数据对象存储为数组[]。

title = res['data']['data'][0]['title'];
body = res['data']['data'][0]['body'];

如果您发现数组有多个对象的情况,则必须将 0 更改为数组中对象的索引。 参考:www.json.org

【讨论】:

  • 感谢 Daedalus 发现这一点。已更正
  • 谢谢@Schiphol。我尝试了你的答案,但同样得到了完整的答案
  • 你说你用的是axios。这是您将 response.data 记录到控制台时的输出吗?然后title = response.data.data.data[0].title
【解决方案2】:

假设您的 JSON 已分配给名为 response 的变量,您可以通过以下方式访问正文:
let body = response.data.data[0].body

标题与
let title = response.data.data[0].title

如果您想遍历数据数组以获取所有条目(例如标题)的值,请尝试以下操作:
let titles = response.data.data.forEach(entry => console.log(entry.title));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 2021-07-11
    • 2019-05-13
    • 1970-01-01
    • 2021-09-06
    • 2011-05-08
    • 1970-01-01
    • 2021-10-02
    相关资源
    最近更新 更多