zoukankan      html  css  js  c++  java
  • json对象与json字符串

    html前端页面:
    1.JSON对象
    属性名不行使用双引号括起来:属性名和属性值之间使用冒号:分割,多个属性之间有逗号分割
       var jsonObj = {"name":"孙悟空","age":500};
        alert(jsonObj); //jsonObj输出的是对象 [object Object]

        如果是object类型,可以直接jsonObj.name  获取属性值

    2.JSON数组--可以放,字符串、数字、布尔类型、null、对象、数组
      var jsonArray = ["八戒",1500,true,null,jsonObj];
      //获取数组中JSON对象的age属性
      alert(jsonArray[4].age);

    //3.创建一个稍微复杂的JSON对象
    var fzJSon = {"name":"唐僧",
    "age":18,
    "sons":[{"name":"孙悟空"},
    {"name":"小白龙"},
    {"name":"猪八戒","wives":[{"name":"嫦娥","age":18},
    {"name":"高翠儿","age":17},
    {"name":"蜘蛛精","age":16}
    ]},
    {"name":"沙和尚"}
    ]
    };
    //获取猪八戒第二任夫人的名字
    //alert(fzJSon.sons[2].wives[1].name);

    //4.将JSON对象 转换为JSON字符串----字符串不能直接取值
    var objToStr = JSON.stringify(jsonObj)
    //alert(objToStr.name); //{"name":"孙悟空","age":500}

    //声明一个JSON字符串
    var jsonStr = '{"name":"张继科","age":28}';
    //alert(jsonStr);

    //5.将JSON字符串转换为JSON对象--对象可以直接取值
    var strToObj = JSON.parse(jsonStr);
    alert(strToObj.name);


    //---前台数据
    $(function(){
    //给按钮绑定单击事件
    $("#btnId").click(function(){
    //发送ajax请求
    //设置请求地址
    //json:可以直接把字符串转换为对象,传给res
    var url = "JSONServlet";
    $.post(url,function(res){
    //alert(res.id+"-"+res.name+"-"+res.age);
    },"json");
    });
    });


    <button id = "btnId">发送Ajax请求接收JSON格式的响应数据</button>

    //假设从数据库中查询出来的一个User对象
    User user = new User(1,"白骨精",19); //字符串
    //导入了gson-2.2.4jar包后,可以直接把user字符串转换为对象
    System.out.println("user=="+user); //对象
    //user:User [id=1, name=白骨精, age=19]

    //创建Gson对象
    Gson gson = new Gson();
    //将User对象转换为JSO字符串
    String json = gson.toJson(user);
    System.out.println("json:"+json);
    //json:{"id":1,"name":"白骨精","age":19}

    //
    User fromJson = gson.fromJson(json, User.class);
    System.out.println("fromJson:"+fromJson);
    //fromJson:User [id=1, name=白骨精, age=19]

    //给前台一个响应-------属性的双引号要用转译字符
    //response.getWriter().write("{"name":"张继科","age":28}");
    response.getWriter().write(json);

  • 相关阅读:
    [luogu p1164] 小A点菜
    [luogu p5018] 对称二叉树
    [luogu p1305] 新二叉树
    [luogu p1030] 求先序排列
    [luogu p1087] FBI树
    [luogu p1449] 后缀表达式
    [luogu p1160] 队列安排
    [luogu p1057] 传球游戏
    有趣的问题系列-主元素问题
    [luogu p1192] 台阶问题
  • 原文地址:https://www.cnblogs.com/yangmie/p/13099131.html
Copyright © 2011-2022 走看看