js解析后台map转成的json方法

我的json为[{"11":"滨江区"},{"12":"的收费"}]格式。这是后台将map转化成的json。因为11、12这种key不确定,前台不知道如何拿到"11"和"滨江区"字符串。求高手指教

第1个回答  推荐于2016-11-14
JavaBean(以User为例)转成json格式
1.转成JSONArray类型
User user = new User();
user.setUsername("cxl");
user.setPassword("1234");
JSONArray json = JSONArray.fromObject(user);
System.out.println(json);//[{"password":"1234","username":"cxl"}]
response.getWriter().print(json.toString());
在js文件取数据
$.getJSON("http://localhost:8080/jQueryDemo/servlet/UserServlet",null,function(data) {
alert(data[0].username);
alert(data[0].password);
});
2.转成JSONObject类型
JSONObject jsonObj = JSONObject.fromObject(user);
System.out.println(jsonObj);//{"password":"1234","username":"cxl"}
response.getWriter().print(jsonObj);
在js文件取数据
alert(data.username);
alert(data.password);

List转成json格式
List<User> users = new ArrayList<User>();
User user = new User();
user.setUsername("cxl");
user.setPassword("1234");
User u = new User();
u.setUsername("lhl");
u.setPassword("1234");
users.add(user);
users.add(u);
1.转成JSONArray类型
JSONArray json = JSONArray.fromObject(users);
System.out.println(json.toString());
//[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}]
response.getWriter().print(json.toString());
js中取数据:alert(alert(data[0].username));
第2个回答  推荐于2016-09-03
var array = [{"11":"滨江区"},{"12":"的收费"}];
for(var i=0;i<array.length;i++){
    var obj=array[i];
    for(var p in obj) {
        console.log(p + ":" + obj[p]);
    }
}

追问

谢谢你的回答。这样子是可以的,但我也遇到了麻烦。原来在这里map转成json后格式为
[{"44":"上新镇","22":"浦沿镇","33":"闻堰镇","54":"田田镇"}]。array.length=1,所以在用的时候只需要 var obj=array[0];就好了,外面的循环不用。
疑问:for(var p in obj) {}是js访问类的成员变量以及其值得通用方法么?之前完全没用过。

本回答被提问者采纳
第3个回答  2018-05-07
误人子弟吧不含糊。