一、简介

 
      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. 结构体 typedef struct hash_cell_struct hash_cell_t;

    typedef struct hash_cell_struct hash_cell_t; struct hash_cell_struct{ void* node; /*!< hash chain ...

  2. 软件测试Web数据分析工具HttpWatch安装

    1.下载破解版:http://www.pc6.com/softview/SoftView_13845.html 2.安装时引入授权文件并汉化: 3.打开IE9,菜单:管理加载项->工具栏和扩展, ...

  3. linux 查看外网IP

    curl http://iframe.ip138.com/ic.asp curl ifconfig.me curl http://members.3322.org/dyndns/getip

  4. ShopNc商城修改详情

    1. 修改400电话.(400.png) a.位置:在页面顶部搜索的后面. b.修改文件: t/layout/home_layout.php 增标签 <img border=0 src=&quo ...

  5. apache开源项目--Jackrabbit

    Apache Jackrabbit 是由 Apache Foundation 提供的 JSR-170 的开放源码实现.. 随着内容管理应用程序的日益普及,对用于内容仓库的普通.标准化 API 的需求已 ...

  6. 《C#并行编程高级教程》第9章 异步编程模型 笔记

    这个章节我个人感觉意义不大,使用现有的APM(异步编程模型)和EAP(基于时间的异步模型)就很够用了,针对WPF和WinForm其实还有一些专门用于UI更新的类. 但是出于完整性,还是将一下怎么使用. ...

  7. SharePoint 2010 master page 控件介绍(1)

    转:http://blog.csdn.net/lgm97/article/details/6409204 以下所有的内容都是根据Randy Drisgill (MVP SharePoint Serve ...

  8. 使用ServiceStackRedis链接Redis简介

    注:关于如何在windows,linux下配置redis,详见这篇文章:) 目前网上有一些链接Redis的C#客户端工具,这里介绍其中也是目前我们企业版产品中所使用的ServiceStackRedis ...

  9. codeforces 672C - Recycling Bottles 贪心水题

    感觉很简单,就是讨论一下 #include <stdio.h> #include <string.h> #include <algorithm> #include ...

  10. 黑盒测试用例设计方法&理论结合实际 -> 判定表驱动法

    一. 概念 判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 二. 判定表驱动法的应用 判定表的优点: a. 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏.因此,利用判定表能 ...