我的Javascript是这样的:
<script type="text/javascript">
var priceJson = '[{"@attributes":{"Code":"SGL","Total":"400000"},"DayPrice":{"Date":"2016-05-26","Rate":"400000"}},{"@attributes":{"Code":"DBL","Total":"200000"},"DayPrice":{"Date":"2016-05-26","Rate":"200000"}}]';
console.log(priceJson);
var priceObject = JSON.parse(priceJson);
console.log(priceObject);
if(priceObject.DayPrice.Rate)
priceObject = [priceObject];
else
priceObject = priceObject;
console.log(priceObject);
var priceJson = JSON.stringify(priceObject);
console.log(priceJson);
var countRoomType = priceObject.length;
for(var i=0; i<countRoomType; i++){
console.log(priceObject[i].DayPrice.Date);
console.log(priceObject[i].DayPrice.Rate);
}
</script>
演示(参见控制台):https://jsfiddle.net/oscar11/wsqdha8w/1/
变量priceJson具有动态值。该值可以是单个数据实例,也可以是数据数组。如果该值包含1个数据,那么我将转换为如下数据数组:
if(priceObject.DayPrice.Rate)
priceObject = [priceObject];
但是,在控制台中存在以下错误:TypeError: priceObject.DayPrice is undefined
解决我问题的任何解决方案?
答案 0 :(得分:2)
根据您的错误消息判断,您还需要检查DayPrice
是否存在。
if( priceObject.DayPrice && priceObject.DayPrice.Rate )
此if
条件有两个步骤。
DayPrice
是否存在,DayPrice.Rate
是否存在如果第一个失败,