类型不正确。预期的“对象”

时间:2019-05-28 15:47:17

标签: json visual-studio-code

我有这个json,但Visual Studio Code在标题中给了我警告。

[
    {
      "title": "Book A",
      "imageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ6B1bizZf6gt_7vtUZXx0cPf81u07iJf9ZPBMPn5kM_5pyIRnE",
      "description": "Cool book!",
      "price": "10",
      "id": "0.9910457947149673"
    },
    {
      "title": "Book B",
      "imageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ6B1bizZf6gt_7vtUZXx0cPf81u07iJf9ZPBMPn5kM_5pyIRnE",
      "description": "Nice!",
      "price": "12",
      "id": "0.3677736742556723"
    },
    {
      "id": "0.2599869075653567",
      "title": "Αχίλλιου Πόλης",
      "imageUrl": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSERUTEhIWFhUXGRgZGBgWGBgYHRYZGBsaGB4YGxkYHSggGBolIBgXITEhJSkrLi4uGB8zODMtNygtLisBCgoKDg0OGBAQGi0dHh8rKy0tLSsrLS0tLSsrKy0tKy0rLS0tLS0tLS0tLS0tLS0tLS03LS0tLTcrLTc3NzcrLf/AABEIAOEA4AMBIgACEQEDEQH/xAAcAAACAgMBAQAAAAAAAAAAAAAABQQGAgMHAQj/xABGEAABAwEGBAMEBggFAgcBAAABAAIRAwQFEiExQQZRYXETIpEygbHBBxRCUqHwIzM0YnJz0eEVJILC8RayNURTVIOSoiX/xAAYAQEBAQEBAAAAAAAAAAAAAAAAAQIDBP/EACERAQEAAgIDAAMBAQAAAAAAAAABAhESIQMxQSJRkTIT/9oADAMBAAIRAxEAPwC/IQhUCEIQCELCvWaxpe8hrWiSTsEGaFjTeHAOaZBEgjcHdZIBCEIBCEIBCEIBCEIBCEIBCEIBCEIBCEIBCEIBCEIBKbzv+lQfgdLjEnDEN7k79Ej4r4mdTqOoU3YSMIJGpxbA7Kr2yyP8NgY5jsbnE43VJAxHzZHTJB0SzcR0H6OcO7T8VNpXhSdo9use/wB65lcdpfSfUpOmWhj83NIe06Fpw/hOyd0ra7EQ9hJfu1khw2g4vL26oL2qjx1UqVm/VKAlxaalToxuje52Vmr120qRe4w1jZPQAJHwq9pa+01XsFSucRBc2WsGTW68vis39OuHV5If0bXv4tnNFx81LIdWHT00VwXK7RUF3XnjY4Gk8ycJBAY45j3HNdTa4ESDkcx2KY34vmx1dz6UXxxHRspiqKgGzgwlp6A81sua/aVqzpB5bn5i0gZbTzUy8LEyvTdSqNlrhB/r3XNLJba10Wh9J4L6TgSP3vuuB2OxUtsMMMc5qe11tvFdClU8J7aofsPDJxdRGoUm237TpUxUf",
      "description": "A cool book. Everyone should buy it!",
      "price": "10"
    },
    {
      "id": "0.8862598606325078",
      "title": "xvbxb",
      "imageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ6B1bizZf6gt_7vtUZXx0cPf81u07iJf9ZPBMPn5kM_5pyIRnE",
      "description": "xvcxv",
      "price": "20"
    }
]

为什么?

1 个答案:

答案 0 :(得分:4)

从历史上看,顶层JSON是一个对象。不是数组或基元。

实际上,该规则的执行情况有所不同。 VSCode提醒您,您并不是在最可互操作的意义上看待JSON。

编辑: 有很多定义JSON的RFC,历史上通常更严格,但如今已被大多数JSON取代。

我对寻找一个强制执行“顶级项目是一个对象”规则的官方JSON定义不知所措。我怀疑在一段时间内关于浏览器支持和其他解析器这只是现实,因此在被正确标准化之前,它已成为事实上的标准。

例如参见: rfc4627 rfc7159 rfc8259