javascript - 我不懂 JSON。需要一些帮助来清理一些事情

标签 javascript json

这是我正在处理的内容。

jsonobject = {
  "products": [
    {
      "ProductABC-001": {
        "attributes": [
          {
            "color": "blue"
          },
          {
            "size": "large"
          }
        ]
      }
    }
  ]
};
  1. 这是一个真实/纯 JSON 对象还是被认为是其他对象?
  2. 如果答案是“否”,它和纯/真正的 JSON 对象有什么不同?
  3. 为什么下面返回“undefined”而不是“Array”?从我的 Angular 来看,我位于产品节点的第一个元素,这意味着下一个级别是属性数组。显然,这是错误的。

jsonobject.products[0].attributes[0]

最佳答案

  1. 这里根本没有 JSON。您拥有的是一个 Javascript 对象文字,用于创建 Javascript 对象。

  2. JSON 是数据的文本表示形式。 JSON 语法是 Javascript 对象和数组文字语法的子集。 =; 之间的对象文字恰好遵循更严格的 JSON 语法,因此您可以采用源代码的该部分并将其用作 JSON .

  3. 因为您从 jsonobject.products[0] 获取的对象没有任何 attributes 属性。

您将使用 jsonobject.products[0]['ProductABC-001'].attributes[0],它返回对象 { "color": "blue"}

<小时/>

据我所知,您所需要的只是一个产品对象数组,它有一个名称和一个带有属性的对象:

var products = [
  {
    name: "ProductABC-001",
    attributes: {
      color: "blue",
      size: "large"
    }
  }
];

关于javascript - 我不懂 JSON。需要一些帮助来清理一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27672103/

相关文章:

json - 像 console.log 这样打印 JSON 会在 Node.js 中打印

json - Angular Response.json() 未记录

java - 如何将两个相同的 json 属性名称分配给两个单独的字段

javascript - 本地存储可以存储整个页面吗

javascript - 我如何创建一个函数,以便编程行将等到它完成并移动到 javascript 中的下一行

javascript - 为 document.getElementById 和 document.createElement 使用变量

json - 让 Grails Controller 处理 JSON 请求的示例代码

javascript - 获取属性的值 - javascript

javascript - `npm install` 因大型 package.json 而被杀死,没有 npm-debug.log

javascript - jquery中带有箭头的简单下拉列表