2016-06-13 183 views
0

如何在jsp中创建json对象?如何在jsp中创建json对象?

var jsonObj = { 
    "firstname": "test", 
    "lastName": "test", 
    "email": "test", 
    "mobile": "test", 
    "place": "test", 
    "country": "test" 
}; 

alert(jsonObj.length); 

这会打印“undefined”的长度。


var json = {"person": 
    { 
     "p1": 
      {"home": 
       {"address":0, 
       "phoneNumber":0 
       }, 
      "office": 
       {"address":0, 
       "phoneNumber":0 
       } 
      }, 

     "p2": 
      {"home": 
       {"address":0, 
       "phoneNumber":0 
       }, 
      "office": 
       {"address":0, 
       "phoneNumber":0 
       } 
      }, 

     "p3": 
      {"home": 
       {"address":0, 
       "phoneNumber":0 
       }, 
      "office": 
       {"address":0, 
       "phoneNumber":0 
       } 
      }, 
    }, 

    "msg":"People data" 
} ; 

想这是我的JSON对象。 我想运行一个循环,并通过迭代值..

alert("json length = " + Object.keys(json).length); //2 
alert("keys in json : " + Object.keys(json)); //person,msg 

var people = json.person; 
var personLen = Object.keys(people).length; //3 

现在我想运行一个循环,进去P1,P2,P3 ..

for(i=0; i<people; i++) { 

    var person = people[i]; //but this doesnt work 

} 

值我如何使用循环获取这些值?

回答

2

这会打印“undefined”的长度。

因为它没有属性命名length,它不是这将有一个数组内置的财产length

如果你想在这个对象属性的数量,然后尝试

Object.keys(jsonObj).length 
+0

但是,如果我们把它通过ajax调用,我们可以使用长度。这是为什么? – Anjana

+0

你可以分享作为AJAX响应得到的输出吗? – gurvinder372

+0

请检查我的问题编辑.. – Anjana

1

上有对象没有length属性

var jsonObj = { 
    "firstname": "test", 
    "lastName": "test", 
    "email": "test", 
    "mobile": "test", 
    "place": "test", 
    "country": "test" 
}; 
// It will return an array of 6 elements['test','test','test','test','test','test'] 
var a =Object.keys(jsonObj) 
alert(a.length); 

JSFIDDLE