一、简介

 
      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. 宏page_t

    /** Type of the index page */ typedef byte page_t;

  2. Java web 项目 tomcat部署方式.

    本地做Java Web项目的时候常常会用到tomcat部署测试的问题, 这里介绍项目的部署方法: 1,配置文件的形式: 例如: 你的项目目录为:f:\workspaces\MyProject,此时使用 ...

  3. 为自己打造Linux小系统

     一.前言 Linux操作系统至1991.10.5号诞生以来,就源其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为 ...

  4. Dubbo实例

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  5. Android UI设计系统-android selector 开始自定义样式

    Selector的结构描述: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...

  6. mysql_insert_id 为什么会返回空值

    如果同时打开了一个以上的数据库资源,如果其中一个资源,没有使用insert语句或没有auto_increment类型的数据,或返回结果恰好为空值时,会导致mysql_insert_id()返回空值. ...

  7. oracle11g dataguard部署指南

    一.Oracle11DB+DG配置 1. 单机环境介绍(PRIMARY DATABASE) 主库 primary public ip                    192.168.0.252 ...

  8. Oracle数据库安装后,登录Database Control时密码错误

    解决方案1(实测可行): sys 和 system用户的用户名和密码还记得不?试试看如果不行,用sqlplus 在服务器本地登录%sqlplus / as sysdbaSQL>alter use ...

  9. C++模拟键盘鼠标消息

    #include <Windows.h> /* * === FUNCTION ======================================================= ...

  10. [原]SyntaxHighlighter使用笔记

    [Date]2013-09-21 [Environment]SyntaxHighlighter 3.0.83 [Author]wintys (wintys@gmail.com) http://wint ...