javascript - 在 JSON 数组 Javascript 中访问 JSON 对象

标签 javascript arrays json html

我需要访问以下 JSON,并且必须根据“内容”中每个“选项”数组中的书籍数量创建复选框。如果我访问“ctrl.content = result.data.bookHistory.contents[0].options;”它正在读取内容 [0] 的选项数组,并且成功创建了复选框。在我的例子中,已经为两本书 Predator 和 Alien 创建了两个复选框。但是当我尝试“ctrl.content = result.data.bookHistory.contents[1].options.action;”没有创建复选框,ctrl.content 在“console.log(ctrl.content);”中显示未定义.我尝试访问“ctrl.content = result.data.bookHistory.contents[1].options;”还。没有运气。任何帮助将不胜感激。

JSON

{
"bookhistory" : {
    "contents" : [
             {
              "options" : [
                {
                        "title" : "Predator",
                        "type" : "CHECKBOX"
                },
                {
                        "title" : "Alien",
                        "type" : "CHECKBOX"
                }]
             },
             {
              "options" : [
                {
                   "action" : 
                     {
                         "title" : "batman",
                         "type" : "CHECKBOX"
                     }
                }]
             }]
          }
       }

最佳答案

options 是一个数组,你不能直接调用options.action,你需要调用options[0].action 然后它会给你具有标题和类型的 Action 对象。

请看下面的代码。

var res = {
"bookhistory" : {
    "contents" : [
             {
              "options" : [
                {
                        "title" : "Predator",
                        "type" : "CHECKBOX"
                },
                {
                        "title" : "Alien",
                        "type" : "CHECKBOX"
                }]
             },
             {
              "options" : [
                {
                   "action" : 
                     {
                         "title" : "batman",
                         "type" : "CHECKBOX"
                     }
                }]
             }]
          }
       }
       
       
  console.log("direclty calling =>",res.bookhistory.contents[1].options[0].action)
  
  // you can use the forEach method, you can check the data basically contents is an array and for the first item options doesn't have action but the second item in the contents have action for the options array. 
  
// inorder to print you can use a if conditon as shown below 

console.log("using loops")

res.bookhistory.contents.forEach(o => {
 o.options.forEach(so => {
  if(so.action){
    console.log(so.action)
  }else{
    console.log(so)
  } 
 })
})

关于javascript - 在 JSON 数组 Javascript 中访问 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53362084/

相关文章:

javascript - 显示来自网站 URL (json) 的图像以在本地主机中本地显示

javascript - 如何将 JS 的 main 函数调用到我的 html 中?

javascript - 如何让一个div适合100%的手机屏幕

javascript - 为什么我的 Ajax 请求在我的数据类型为 : "Content-Type: application/x-www-form-urlencoded"? 时发送 "JSON"

javascript - Vue js/javascript 对象数组 - 如何检测是否有任何对象已更改以及更改了哪个对象

javascript - 按年份过滤json数据

javascript - 在 JSON/Javascript 中表示时间的首选方式?

c - C 编程的指针和数组(基础)

c - C语言中的字符串会发生什么变化?

python - 带有 json querydict 和消息的 Django