• 05---JSON学习(Java)


    一、简介

     
          JSON:JavaScript对象表示法(JavaScript object Notation)
     
          JSON是存储和文本交换信息的语法
     
          JSON是轻量级的文本数据交换格式
     
          JSON独立于语言和平台
     
          JSON具有自我描述性,更易理解
     
    二、与XML相比
     
        JSON类似于XML,但比XML更小、更快、更易解析
     
        没有结束标签、更短、读写速度更快、使用数组、不使用保留字
     
        缺点:
         
            必须使用Unicode字符集,受约束性较强
     
            必须遵循JSON的四个基本原则
     
        使用场景:
     
              适合数据量大,不要求保留原有数据类型的情况下使用
     
    三、JSON语法
     
        1、JSON语法是JavaScript对象表示法语法的子集
     
              ·数据在名称/值对中
     
              ·数据有逗号分隔
     
              ·花括号保存对象
     
              ·方括号保存数组
     
        2、JSON的值可以是
     
              ·数字(整数或浮点数)
     
              ·字符串(在双引号中)
     
              ·逻辑值(true或false)
     
              ·数组(在方括号中)
     
              ·对象(在花括号中)
     
              ·null
        
          如:{"firstName":"John","lastName":"Doe"}
     
    四、使用Java解析Json文件
     
          下载 gson.jar包
     
          读取文件
        
          JsonParser parser = new JsonParser();
           JsonObject object = (JsonObject) parser .parse(new FileReader( "src/test.json"));
            System.out .println("cat=" +object .get("cat" ).getAsString());
            System.out .println("pop=" +object .get("pop" ).getAsBoolean());
           
            JsonArray array = object .get("language" ).getAsJsonArray();
            for (int i = 0;i <array .size();i ++){
              System. out .println("----------------" );
              JsonObject subObject = array .get(i ).getAsJsonObject();
                 System. out.println( "id="subObject .get("id" ).getAsInt());
                 System. out.println( "name="subObject .get("name" ).getAsString());
                 System. out.println( "ide="subObject .get("ide" ).getAsString());
              
            }
     
         创建文件
     
     
               JsonObject object = new JsonObject();
               object.addProperty( "cat" , "it" );
              
               JsonArray array = new JsonArray();
              
               JsonObject lan1 = new JsonObject();
               lan1.addProperty( "id" , 1);
               lan1.addProperty( "name" , "java" );
               lan1.addProperty( "ide" , "Eclipse" );
               array.add( lan1);
              
               JsonObject lan2 = new JsonObject();
               lan2.addProperty( "id" , 2);
               lan2.addProperty( "name" , "Swift" );
               lan2.addProperty( "ide" , "XCode" );
               array.add( lan2);
              
               JsonObject lan3 = new JsonObject();
               lan3.addProperty( "id" , 3);
               lan3.addProperty( "name" , "C#" );
               lan3.addProperty( "ide" , "Visual Studio" );
               array.add( lan3);
           
               object.add( "language" , array );
               object.addProperty( "pop" , true );
           
               System. out .println(object .toString());
     
     
    五、一个重要思想
     
           在编程过程中,遇到错误了,遇到非预期的结果了,不要急着去猜,去试来找出错误
     
           这是一种极其浪费精力的低级debug的错误方法
     
           要理清脉络,从根源思考清楚出错的逻辑是什么,这样才能加深理解,在以后的工作中避免更多错误
     
     
     
    六、一个小补充
     
        所有编程语言的开发都离不开三种数据类型
     
         
        1、 标量(Scalar)   一个单独的字符串
     
        2、 序列(sequence) 如数组或列表
     
        3、 映射(mapping)  名/值  如散列或字典
  • 相关阅读:
    查找正序排列的List中缺失的日期数据的一个算法
    了解下C#异常时的输出
    Environment.Exit(0) 、Application.Exit() 、this.Close() 、this.Dispose()的区别
    java--多线程之后台线程
    java--线程状态【转】
    DRP项目总结
    Java实现 蓝桥杯 算法训练 矩阵乘法
    Java实现 蓝桥杯 算法训练 矩阵乘法
    Java实现 蓝桥杯 算法训练 矩阵乘法
    Java实现 蓝桥杯 算法训练 大小写转换
  • 原文地址:https://www.cnblogs.com/rocomp/p/4756252.html
Copyright © 2020-2023  润新知