一、简介

 
      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)  名/值  如散列或字典

05---JSON学习(Java)的更多相关文章

  1. Json for Java API学习

    首先声明:本文来个非常多网友的博客,我通过參考了他们的博客,大致的了解了一些项目中经常使用的Json in java 类和方法,以及关于json的个人理解 个人对json的一些简单理解 在近期的学习中 ...

  2. Json与Java对象互转之Gson学习

    Json与Java对象互转之Gson学习 请尊重他人的劳动成果.转载请注明出处:Json与Java对象互转之Gson学习         我曾在<XML,Object,Json转换之浅析Xstr ...

  3. 20145219 《Java程序设计》第05周学习总结

    20145219 <Java程序设计>第05周学习总结 教材学习内容总结 try.catch 1.求平均数程序示例 import java.util.Scanner; public cla ...

  4. json学习系列(8)JSON与JAVA数据的相互转换实例

    一.完整案例 先定义一个java实体对象,如下: package com.pcitc.json.cnblog; /** * SimInfo实体对象 * * @Description * @author ...

  5. Json学习总结(1)——Java和JavaScript中使用Json方法大全

    摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语 ...

  6. 通过WebGoat学习java反序列化漏洞

    首发于freebuff. WebGoat-Insecure Deserialization Insecure Deserialization 01 概念 本课程描述了什么是序列化,以及如何操纵它来执行 ...

  7. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  8. 如何学习java?Java基础知识点分享

    面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...

  9. 新手学习Java,该从哪里学起?

    最近在入坑Java,Java基础知识了解的差不多了,听过很多人的建议,但是从别人那里听到的都是一些比较琐碎的东西,根据打听来的,结合网上自己找到的建议,开始详细地记录一下初学Java,应该掌握哪些具体 ...

  10. jackson 进行json与java对象转换 之三

    2.测试类,没用Junit,用Main()方法输出. package test; import java.io.IOException; import java.util.ArrayList; imp ...

随机推荐

  1. bzoj4009

    这是一道神题,首先我们不难先到整体二分吧 下面的问题就是,求出对于每个水果,有多少盘子是他的子路径 直接考虑不是很容易,我们换个思路,考虑对于每个盘子,哪些水果能包含它 我们假设盘子a,b,dep[a ...

  2. poj3274

    很不错的hash 优化有两个方面:1.根据题目换一个更优化的算法 2.在算法运行过程中优化 这题除了暴力好像没别的办法了吧? 但是暴力也是有策略的! 到第i只牛特征为j的总数为sum[i,j]; 找到 ...

  3. Unity3D GUI中的图片跟随鼠标旋转脚本

    var Mid : Texture2D; var mouse : Texture2D; //鼠标图片 var mousePs = Vector2.zero; //鼠标的位置 private var a ...

  4. HNOI2008玩具装箱 (斜率优化)

    总算A了,心情好激动…… 如果会了一类斜率优化,基本上这类题就成了套模版了…… 只是k函数不同 var n,l,x,tail,head,m:int64; i,j:longint; dp,q,s:..] ...

  5. 几款JS地图插件比较

    因工作需要,最近研究几款关于地图的JS插件,现与大家分享一下. 以下比较只是浅层次的分析一下,并没有实际通过项目检验,所以不足之处还请大家指出. 地图插件对比 插件名  简介 区域支持 扩展性 离线支 ...

  6. I.MX6 android shutdown 内核崩溃

    /**************************************************************************** * I.MX6 android shutdo ...

  7. 也用 Log4Net 之走进Log4Net (四)

    转载地址:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 我是转的别人的内容,我觉得他写的非常好,所以我把其中三分之二转了过来 ...

  8. (转载)HTTP URL

    HTTP URL的格式如下: http://host[“:”post][abs_path] 其中http表示要通过HTTP协议来定位网络资源.host表示合法的Internet主机域名或IP地址(以点 ...

  9. visual studio 中使用git

    原文链接:http://my.oschina.net/gal/blog/141442 osc终于全面开放git库了,这是我一直期待的事,也是促使我从CSDN转回OSC社区的重要原因之一.而这次我来教大 ...

  10. openvpn文本验证模式配置

    证书模式要为每个客户端生成一个证书,虽说安全性较好,但是比较麻烦,可以配置成用户名/密码的验证模式,这样就比较方便了,我这里用最简单的文本验证模式. 一.安装openvpn 不多说了,之前有篇文章已经 ...