【问题标题】:Working with a JSON file and Javascript使用 JSON 文件和 Javascript
【发布时间】:2023-03-05 07:25:02
【问题描述】:

这是我的一个非常简单的错误,感谢所有回答的人。

【问题讨论】:

  • 示例 JSON 文件会有所帮助
  • 提供一个带有一个结果的 JSON 数据包示例,另一个带有多个结果的示例。
  • 感谢 sun 和 Marcelo,我已经更新了我的原始帖子。

标签: javascript jquery ajax json jsonp


【解决方案1】:

您需要在获取id(因为它是一个数组)之前访问第一个艺术家,如下所示:

var artisttype = Artists[0].id;

如果您可以将 JSON 更改为 总是 返回一个数组,即使只有一个结果也会更好……不幸的是,某些平台不这样做,原因超出了我的理解。 p>

【讨论】:

    【解决方案2】:
     for(var propertyname in responseData){
           //will loop through the different elements in your json array
          alert(responseData[propertyName]); //will output the valueof each element
    }
    

    【讨论】:

    • 我不确定,我还没有能力为问题投票。
    【解决方案3】:

    您说得对,这是有问题的,老实说,这听起来像是向您发送 JSON 的“另一端”不一致。

    问题在于,当有多个项目时,他们会向您发送 id 属性的 array,而当只有一个项目时,他们只会向您发送一个简单的值(例如一个整数)。理想情况下,当有单个项目时,您应该收到一个单项目数组 - 这将让您每次都使用相同的基于数组的解析代码。

    如果你不能说服他们改变他们发送给你的内容,那么最好的选择就是做你目前正在做的事情;查看是否定义了Artists.id,如果是则使用它,否则退回到以数组形式访问id

    【讨论】:

      【解决方案4】:

      但是,如果返回超过 1 个结果 Artists.id;将返回“未定义”。所以我需要把它改成这样: Artists.id[0];

      如果 Artists.id[0] 存在,这不能是 Artists.id 应该是“对象”而不是未定义。也许正如 Artists[0].id 所说的那样?如果是这样,您可以测试 typeof(Artists) == typeof([])

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-30
        • 2020-05-07
        • 2021-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多