zoukankan      html  css  js  c++  java
  • java中的json使用

    josn:

        一种数据传输格式,与开发语言无关,轻量级
        一开始是javaScript的,但是后面比较流传,几乎所有语言都有相应的使用API

    数据结构:

    Object---对象
      使用花括号{}包含的键值对结构
      Key必须是String类型,value为任何基本类型或者数据结构(对象,或者数组)

    Array---数组
      使用中括号[]来起始,并用逗号,来分隔元素

    基本类型:
       string number true false null
    例如:

    {
      "name" :"王小二",
      "age": 22,
      "birthday" : "1990-12-1", 注意:json里没有Date这种时间的类型,所以用string;需要了解一下时间戳
      "school" : "蓝翔",
      "major": ["理发","挖掘机"],
      "has_girlfriend":false,
      "car": null,
      "house": null,
      "commont": "这是一个注释"
    }
    注意:
    json中没有注释的写法,但是我们可以曲线救国
    {
        "id":"1",
        "author":{
            "id":"1506200043",
            "name":"kylin",
            "gender":1
        },
        "major":["理发","挖掘机"]
    }

    java对json有支持,在使用的时候需要引入以下包:

        commons-beanutils.xxx.jar
        commons-collections.xxx.jar
        commons-lang.xxx.jar
        commons-logging.jar
        json-lib.xxx.jar
        ezmorph.xxx.jar

    JSON字符串的常用生成方式:----------从后端发送给前端的数据
    1.使用map来放key-value数据,然后转换成json对象--再转换成json字符串---再发送给前端

    //map(javaObject)--->jsonObject---->jsonStr ----前端
    import net.sf.json.JSONObject;
    public void jsonStrByMap(){
    
    //构建map对象,并且把需要发送给前端的东西添加进入
    Map<String,String> params=new HashMap<>();
    params.put("status","200");
    params.put("username","kylin");
    params.put("password","123456");
    params.put("sexy","male");
    params.put("userID","15062");
    
    //java对象变成json对象
    JSONObject jsonObject=JSONObject.fromObject(params);
    
    //json对象转换成json字符串
    String jsonStr=jsonObject.toString();
    
    System.out.println(jsonStr);
    }

    2.使用javabean来构建json

    User.java
    public class User {
      private String username;
      private String password;
    
    
    public String getUsername() {
    return username;
    }
    
    public void setUsername(String username) {
    this.username = username;
    }
    
    public String getPassword() {
    return password;
    }
    
    public void setPassword(String password) {
    this.password = password;
    }
    
    }
    //javabean---json对象---json字符串---->前端
    public void jsonStrByJavaBean(){
    
    //创建一个User对象
    User user=new User();
    user.setUsername("kylin");
    user.setPassword("123456");
    
    //java对象转换成json对象
    JSONObject jsonObject=JSONObject.fromObject(user);
    
    //json对象转换成json字符串
    String jsonStr=jsonObject.toString();
    System.out.println(jsonStr);
    }

    从前端获取的数据------>转换成后端可以用的数据
    json字符串转换成java对象

    //前端传递过来的是json字符串,那么我们对这个字符串需要进行获取并且处理
    //json字符串-----json对象------java对象
    JSONObject jsonobject = JSONObject.fromObject(jsonStr);
    User user=(User)JSONObject.toBean(jsonobject,User.class);
    //然后就通过user对象来操作了
    String username=user.getUsername();
    String password=user.getPassword();

    json字符串转换成map对象

    JSONObject jsonobject = JSONObject.fromObject(jsonStr);
    Map params=(Map) jsonObject;
    //然后就可以通过map来操作了
    //判断是否有username字段和username字段
    if (params.containsKey("username")){
        System.out.println(params.get("username"));
    }
    if (params.containsKey("password")){
        System.out.println(params.get("password"));
    }

    小结:

        json是一种前后端的通信规范,上面介绍的是JSON(android SDK中的官方库);一般在移动客户端的时候使用,后续将会介绍GSON(谷歌的一个开源库),一般用于服务端后台的开发中,功能相对强大.

      

    JSON库的总结:
      功能:映射java对象和json字符串

      1.通过Annotation注解来声明
      2.支持自定义属性名称  
      3.支持包含或排除属性
      4.支持自定义借口自己完成解析/生成过程

    流程:
      后端使用java编写json,
      前端使用javascript直接对json字符串进行解析
      android客户端使用json类来解析

  • 相关阅读:
    实验二 20159213
    读书笔记二 20159213
    读书随笔 20159213
    keycode对照表
    jquery ajax中各个事件执行顺序如下
    移动端web开发技巧
    zepto处理touch事件
    CSS控制文字只显示一行,超出部分显示省略号
    input按钮的事件处理大全
    jquery中ajax处理跨域的三大方式
  • 原文地址:https://www.cnblogs.com/shan-kylin/p/9218680.html
Copyright © 2011-2022 走看看