我有一个来自ajax请求的以下JSON响应.
var json = {
"response": {
"freeOfChargeProduct": {
"description": "Product",
"orderQty": 5,
"productName": "XYZ",
"qty": 6,
"details": {
"price": 55.5,
"instock": "true",
"focQuantity": 1
}
},
"orderLineId": 4788,
"totalOrderLinePrice": "741.36",
"totalOrderPrice": "1,314.92",
"totalQty": 17
};
Run Code Online (Sandbox Code Playgroud)
JSON并不总是返回"freeOfChargeProduct"属性.因此,如果我想获得"freeOfChargeProduct"价格,那么我必须执行以下操作:
var getFreeOfChargeProductPrice = function() {
var r = json.response;
if (r && r.freeOfChargeProduct && r.freeOfChargeProduct.details) {
return r.freeOfChargeProduct.details.price;
}
return null;
};
Run Code Online (Sandbox Code Playgroud)
没问题.但是检查对象中的每个属性都非常烦人,因此我创建了一个函数来检查对象中的属性是否已定义.
var getValue = function (str, context) {
var scope = context || window,
properties = str.split('.'), i;
for(i = 0; …Run Code Online (Sandbox Code Playgroud) javascript ×1