【问题标题】:I have a JSON response like this, and I'm having trouble access the value for some reason我有这样的 JSON 响应,但由于某种原因我无法访问该值
【发布时间】:2014-07-15 13:47:28
【问题描述】:

JSON 响应:

{ "success" : "false" }

我认为您访问数据的方式:

if (data.success[0] == "false") {
    alert("Login Successful");
}
else {
    alert("Login Failed");
}

它将进入 else 条件。 我做错了什么?

【问题讨论】:

  • data.success == 'false'

标签: javascript ajax arrays json


【解决方案1】:

你应该访问一个对象而不是一个数组

if (data.success === false)

你的回答应该是

{ "success" : false }

否则你需要与一个字符串进行比较:

if (data.success === "false")

【讨论】:

    【解决方案2】:

    data.success 是字符串而不是数组,因此您不需要[0]

    对于您当前的 JSON 响应,if 语句应为:

    if(data.success === 'false') {
       ...
    }
    

    【讨论】:

      【解决方案3】:

      就像这些人说你试图访问的对象不是 array 所以你不需要 [0]

      这是在返回 [0] 的 index 处的字母,因此如果您要记录/警告data.success[0],您会得到 " F ",因为它是您返回的字符串中的第一个字母。

      更常见的做法是返回布尔值 false

      { "success" : false }
      -----------------------^--------^
      注意没有“ ”标记

      然后又没有“”标记

      -----------------------------------v--------v

      if (data.success === false) {
        alert("Login Successful");
      }
      else {
        alert("Login Failed");
      }
      

      【讨论】:

        【解决方案4】:

        "false" 是一个字符串,而不是布尔值。您应该将 data.success 与“false”进行比较

        if(data.success=="false") {
        

        【讨论】:

        • 不使用[0]成功不是数组而是字符串
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        • 2022-11-12
        • 1970-01-01
        相关资源
        最近更新 更多