2015-10-12 18 views
2

我有此JSON响应/取具有子阵列JSON数组的值的值

{ 
    "phweb":{ 
     "name":"PH Web Server", 
     "cpu":"36.7", 
     "ram":"33.0", 
     "hdd":"43.0", 
     "os":{ 
     "osup":"2 days, 23 hours, 5 minutes and 34 seconds", 
     "osstat":"0" 
     }, 
     "apache":{ 
     "apachestat":"0", 
     "apacheup":"33 days, 2 hours, 9 minutes and 16 seconds" 
     }, 
     "sql":{ 
     "sqlstat":"0", 
     "sqlup":"154 days, 2 hours, 16 minutes and 53 seconds" 
     } 
    }, 
    "phdbm":{ 
     "name":"PH DBM Server", 
     "cpu":"15.9", 
     "ram":"10.7", 
     "hdd":"23.7", 
     "os":{ 
     "osup":"2 days, 23 hours, 6 minutes and 21 seconds", 
     "osstat":"0" 
     }, 
     "apache":{ 
     "apachestat":"0", 
     "apacheup":"103 days, 4 hours, 43 minutes and 56 seconds" 
     }, 
     "sql":{ 
     "sqlstat":"0", 
     "sqlup":"12 days, 4 hours, 43 minutes and 42 seconds" 
     } 
    } 
} 

,我可以取使用

$.each(response, function(index, value){ 
    console.log(index + " " + value); 
}); 

每个值如何可以取的值具有子数组值的响应值,例如

 "os":{ 
     "osup":"2 days, 23 hours, 6 minutes and 21 seconds", 
     "osstat":"0" 
     }, 
的“phweb”指数

(假设我想从“phweb”的“操作系统”的“osup”?我怎么能或检查其空它确实存在(以避免错误)?

+0

这里没有列,只是对象。因此你可以使用'response.phweb.os'来访问嵌套对象。如果没有匹配的属性,它将是'未定义的' –

回答

1

首先,它是JSON object不是JSON array

可以使用key直接访问它。

使用变量名称,如obj和使用.运营商,关键就在k的值安永。

在下面例子是obj.phweb.os这意味着物镜是具有多个关键值对包括关键phweb和同为phwebos JSON对象。

记住:JSON对象具有key value{}包裹而阵列具有索引和[]包裹。

var obj = { 
 
    "phweb":{ 
 
     "name":"PH Web Server", 
 
     "cpu":"36.7", 
 
     "ram":"33.0", 
 
     "hdd":"43.0", 
 
     "os":{ 
 
     "osup":"2 days, 23 hours, 5 minutes and 34 seconds", 
 
     "osstat":"0" 
 
     }, 
 
     "apache":{ 
 
     "apachestat":"0", 
 
     "apacheup":"33 days, 2 hours, 9 minutes and 16 seconds" 
 
     }, 
 
     "sql":{ 
 
     "sqlstat":"0", 
 
     "sqlup":"154 days, 2 hours, 16 minutes and 53 seconds" 
 
     } 
 
    }, 
 
    "phdbm":{ 
 
     "name":"PH DBM Server", 
 
     "cpu":"15.9", 
 
     "ram":"10.7", 
 
     "hdd":"23.7", 
 
     "os":{ 
 
     "osup":"2 days, 23 hours, 6 minutes and 21 seconds", 
 
     "osstat":"0" 
 
     }, 
 
     "apache":{ 
 
     "apachestat":"0", 
 
     "apacheup":"103 days, 4 hours, 43 minutes and 56 seconds" 
 
     }, 
 
     "sql":{ 
 
     "sqlstat":"0", 
 
     "sqlup":"12 days, 4 hours, 43 minutes and 42 seconds" 
 
     } 
 
    } 
 
} 
 

 
console.log(obj.phweb.os);