JSON - 页面解析后台传的JSON

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

① out直接拼接传回;

一般返回JSON字符串。

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

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

这里写图片描述


② 返回一个JSON-String对象;

JSON数组多应用此种方法。

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

        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(users);
  • 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}]

或者

  • 手动拼接成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\"}]"

判断类型

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

第一种情况:

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

JSON - 页面解析后台传的JSON_第1张图片

    • 返回的JSON字符串

JSON - 页面解析后台传的JSON_第2张图片

    • 转换后的JSON对象

JSON - 页面解析后台传的JSON_第3张图片

    • 获取的属性值

JSON - 页面解析后台传的JSON_第4张图片


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

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

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

② var jsonReturn = $.parseJSON(data);

③ var jsonReturn = JSON.parse(data);

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


  • 遍历的两种方法:

    • 第一种:
                for(var i=0;ifor(var key in jsonReturn[i]){
                     alert(key+':'+jsonReturn[i][key]);
                      $("#content").append(jsonReturn[i][key]);
                         }
                     }
    • 第二种
$.each(jsonReturn,function(index,value){
    //alert(typeof value +" , "+value);             
    alert(typeof value +" ,外层 index: "+index+","+value+",内容为:name :"+value.name+",value:"+value.value);     
                    });

你可能感兴趣的:(JSON)