一、JSON是什么?

  JSON(JavaScript Object Notation)、轻量级数据交换格式。

  JSON的后缀名:.json  JSON的MINE类型:application/json

二、JSON的格式

  以下为实际JSON举例(包含基本类型与数组类型等),理论不再赘述。

{
    "name":"张三",
    "id":1001,
    "address":  
     [  
            {"pro":"anhui","city":"fuyang"},  
            {"pro":"jiangsu","city":"nanjing"}  
     ],
     "bool":true  
}

  关于jsonPath,参考https://www.cnblogs.com/weilunhui/p/3857366.html

三、如何遍历JSON

  简单JSON对象的遍历: 

            1.obj.attr

      2.obj["attr"]

      3.使用 attr in json 进行遍历:

// 遍历简单json对象
 function traverseJsonSimpleObj(){
      var jsonObj = {"name": "kevin", "age": 27, "sex": "男", "city": "shenzhen"};
      for(var key in jsonObj){
           var html = "<p>"
           html +=  (key + ' : ' + jsonObj[key]);
           html += "</p>";
           $("#out").append(html);
      }
 }

  遍历json数组

function traverseJsonArray(){
      var jsonArray = [{"name": "kevin", "age": 27, "sex": "男", "city": "shenzhen"},
          {"name": "kevin2", "age": 28, "sex": "男", "city": "beijing"}];
      //alert('JSON.stringify(jsonArray) = ' + JSON.stringify(jsonArray));
      for(var i=0; i<jsonArray.length; i++){
           var jsonObj = jsonArray[i];
           for(var key in jsonObj){
            var html = "<p>"
            html +=  (key + ' : ' + jsonObj[key]);
            html += "</p>";
            $("#out").append(html);
       }
       $("#out").append("-----------------------------------------------------");
      }
 }

    当然,可以简写为:

 var json = [{dd:'SB',AA:'东东',re1:123},{cccc:'dd',lk:'1qw'}];
 for(var i=0,l=json.length;i<l;i++){
    for(var key in json[i]){
        alert(key+':'+json[i][key]);
    }
 }

     后台直接通过springMVC等框架结合jackson,将JSON字符串放入javaBean中(属性与名称对应)(见springMVC章节)

  【更新】:实际springMVC后台@ResponseBody时返回JSON时前台的解析方法:

    后台返回数据形式:

  示例1:

@RequestMapping(value = "findAll",method = RequestMethod.GET)
    @ResponseBody
    public List<SimpleMenuList> findAll(HttpServletResponse response){
        List<SimpleMenuList> mlList = menuListService.findAll();
        /*ObjectMapper mapper = new ObjectMapper();  
        String jsonfromList = mapper.writeValueAsString(mlList);
        System.out.println(jsonfromList);*/
         //Map<String,Object> map = new HashMap<String,Object>();
        // map.put("list", mlList);
        // 许跨域访问
        response.setHeader("Access-Control-Allow-Origin", "*");
        return mlList;
    }
View Code

相关文章: