一、简介

 
      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. NLog 传递参数

    用NLog记文件日志,一般都用{$basedir}变量,把日志记在运行的目录或者它的子目录下,遇到要写在其他目录的下,看了下Nlog找到用环境变量传参数. .net 里写 Environment.Se ...

  2. 设计模式 - observer

    简单来讲,就是observer依赖于subject,当subject发生变化时,observer得到通知,并将状态与subject同步,常来用于维护对象间状态的一致性. observer的工作过程大体 ...

  3. poj2352

    纪念树状数组初步(……): 这题已经给了y升序,y相同时x升序,(yeah) 所以容易想到O(n^2)的模拟算法: 其实分析一下就是对于当前xi,统计之前有多少个小于等于xi(因为已经保证了没有相同坐 ...

  4. SQL SERVER 2000 & SQL SERVER 2005 数据缓存依赖

    一.SQL SERVER 7.0/2000和SQL SERVER 2005的简介及比较 1.1     SQL SERVER 7.0/2000 SQL SERVER 7.0/2000没有提供内置的支持 ...

  5. JPEG最优压缩参数试验【光影魔术手VS Image Optimizer】

                                          样本数量:100张(1MB-2.6MB)旅游照     样本大小:157MB 156.44      样本尺寸:3M(204 ...

  6. 位图9宫格 BitmapSlice9.jsfl

    /** * Version 1.1, May 4: fixed issue with symbols in library folders. **/ /** * BitmapSlice9 JSFL b ...

  7. 【转载】如何在C语言中调用shell命令

    转载自:http://blog.csdn.net/chdhust/article/details/7951576 如何在C语言中调用shell命令 在linux操作系统中,很多shell命令使用起来非 ...

  8. 用python的numpy作线性拟合、多项式拟合、对数拟合

    转自:http://blog.itpub.net/12199764/viewspace-1743145/ 项目中有涉及趋势预测的工作,整理一下这3种拟合方法:1.线性拟合-使用mathimport m ...

  9. 【Hadoop代码笔记】通过JobClient对Jobtracker的调用详细了解Hadoop RPC

    Hadoop的各个服务间,客户端和服务间的交互采用RPC方式.关于这种机制介绍的资源很多,也不难理解,这里不做背景介绍.只是尝试从Jobclient向JobTracker提交作业这个最简单的客户端服务 ...

  10. CDH CM安装及简单群集部署测试

    前吃人的故事开始了,金钱是如何吃人的呢?我在想ing,还没想通,一起吧,哈哈: 入题,别胡扯,误人子弟!!!! CM@@!!!!!!....................., 先来张monitor ...