JSON - 页面解析后台传的JSON

后台传JSON一般有两种格式:

① out直接拼接传回;

一般返回JSON字符串。

out.print("{\"username\":\"yanshi02\",\"password\":\"123456\"}");

下面的形式返回将不不能解析!
"{'username':'admin','password':'123456'}"
  • 1
  • 2
  • 3
  • 4

这里写图片描述


② 返回一个JSON-String对象;

JSON数组多应用此种方法。

  • 使用jackson 进行转换返回JSON(也可以使用fastJSON等其他json框架)
        List<User> users= session.selectList(statement);

        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(users);
  • 1
  • 2
  • 3
  • 4
  • 5
  • json数组如下
json..[{"id":1,"name":"tom1","age":11},
{"id":2,"name":"tom2","age":12},
{"id":3,"name":"tom4","age":13},
{"id":7,"name":"tom5","age":15},
{"id":8,"name":"Tom6","age":16},
{"id":9,"name":"Tom6","age":16}]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

或者

  • 手动拼接成JSON字符串返回
        String name = request.getParameter("username");
        String password = request.getParameter("password");

        String jsonString ="{\"username\":"+'"'+name+'"'+",\"password\":"+'"'+password+'"'+"}";
        out.println(jsonString);
        out.flush();
        out.close();
或者数组:
"[{\"name\":\"username\",\"value\":\"admin\"},  {\"name\":\"password\",\"value\":\"123456\"}]"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

判断类型

alert(typeof data);
//如果为object,可以尝试直接使用data.key获取属性;
//如果为string,那么必须进行解析为json object,才可以使用!
  • 1
  • 2
  • 3

第一种情况:

  • 获取拿到的JSON字符串,将其转换为JSON 对象。
  • 使用data.key(此时 typeof json 一定为object 而不是string)的形式获取属性值
var jsonReturn = JSON.parse(data);
alert(jsonReturn.username+" , "+jsonReturn.password);
  • 1
  • 2
  • 3
    • 提交的数据内容(字符串的形式,非JSON)

提交的数据内容

    • 返回的JSON字符串

返回的JSON字符串

    • 转换后的JSON对象

转换后的json对象

    • 获取的属性值

获取的属性值


着重讲一下第二种情况–返回String对象。

JS拿到String对象,需要进行解析,将其转变为JSON对象(如果为object,不需要解析,可以直接使用string)。 
【此时json为数组哦,不是单个json对象】

  • 有三种方法:
var jsonReturn = eval("("+data+")");

② var jsonReturn = $.parseJSON(data);

③ var jsonReturn = JSON.parse(data);
  • 1
  • 2
  • 3
  • 4
  • 5

然后就可以对 jsonReturn 进行遍历。


  • 遍历的两种方法:

    • 第一种:
                for(var i=0;i<jsonReturn.length;i++){
                   for(var key in jsonReturn[i]){
                     alert(key+':'+jsonReturn[i][key]);
                      $("#content").append(jsonReturn[i][key]);
                         }
                     }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
    • 第二种
$.each(jsonReturn,function(index,value){
    //alert(typeof value +" , "+value);             
    alert(typeof value +" ,外层 index: "+index+","+value+",内容为:name :"+value.name+",value:"+value.value);     
                    });
  • 1
  • 2
  • 3
  • 4
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/J080624/article/details/54972750
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值