`

JSON基础_常用用法

 
阅读更多

一、首先介绍json常用用法。(这里介绍json-lib-2.2.2-jdk15.jar包的)

1、json字符串的正确写法

String jsonString = "{"name":"zhangsan","age":20,"noWork":true,"address":"changjiangsanxia"}";

String jsonArrayString= "[{"name":"wang","id":"001"},{"name":"lisi","id":"002"}]";

String jsonArrayString2 = "["zhangsan","lisi","wangwu"]";

String jsonObjectString = "{"stuNames":["zhangsan","xiaoming"]}";

2、常用json的转换用法  (这里介绍net.sf.json.JSONObject和net.sf.json.JSONArray两种)

json字符串转换为JSONObject 对象:

       JSONObject json = JSONObject.fromObject(jsonString);

JSONObject对象转换为字符串: 【JSONArray对象转换为字符串,同理】

       String test = json.toString(); 或 String test = json+"";

        Sting test = (String)json;//这种写法是错误的。

JSONObject对象转换为某个Bean类,则使用JSONObject.toBean(JSONObejct json,Class class);

json字符串转换为JSONArray对象:

JSONArray jsonArr = JSONArray.fromObject(jsonArrayString);
  for (int j = 0; j < jsonArr.size(); j++) {
   System.out.println(jsonArr.get(j));
  }

输出结果是:

{"name":"wang","id":"001"}
{"name":"lisi","id":"002"}

 

JSONArray jsonArr = JSONArray.fromObject(jsonArrayString2);
  for (int j = 0; j < jsonArr.size(); j++) {
   System.out.println(jsonArr.get(j));
  }

输出结果是:

zhangsan
lisi
wangwu

 

从json字符串中获取JSONArray对象:

 JSONObject jsonObj = JSONObject.fromObject(jsonObjectString);
 JSONArray jsonArr = jsonObj.getJSONArray("stuNames");

 

为JSONObject赋默认值,要注意:

1、JSONObject json1 = JSONObject.fromObject("{}");//这样写是正确的

2、JSONObject json2 = JSONObject.fromObject("");//这样写是错误的。

JSONObject json22 = JSONObject.fromObject("错误汉字");//这样写是错误的。

会报异常:

net.sf.json.JSONException: A JSONObject text must begin with '{' at character 0 of …………

3、JSONObject json3 = JSONObject.fromObject("null");//这样写也是正确的

但之后在对json3进行其他操作,如不进行条件非空的判断就会报异常

例如:json2.put("susccess","ok");

会报异常:net.sf.json.JSONException: null object …………

使用第三种赋值的正确写法:

JSONObject json2 = JSONObject.fromObject("null");
  if(null != json2 && !"null".equals(json2.toString()))
         json2.put("susccess","ok");
  System.out.println(json2.toString());

 

 二、两种方式转换为字符串

  String test = null + "";
  String test2 = (String)null;
  System.out.println(test instanceof String);//true
  System.out.println(test2 instanceof String);//false

  System.out.println(test2 == null);//true
  System.out.println(test.getClass());//class java.lang.String
  System.out.println(test2.getClass());//报错NullPointerException

 

三、java基本类型转换(自己总结的规律)

 包装类型转换为基本类型,一般使用parseInt(String)、parseLong(String);

例如:

       String test11 = 2 + "";
        int hei = Integer.parseInt(test11);

        long l = Long.parseLong(test11);

 

基本类型转换为包装类型,一般使用valueOf(int i)、 valueOf(long l);

例如:

       long l = 0;

       Long big1 = Long.valueOf(l);
       Long big2 = Long.valueOf(test11);

 

 

 以上内容仅是本人测试过的,项目经验,如有异议,建议留言提出,本人乐于接纳学习。

 

  • 大小: 13.9 KB
分享到:
评论

相关推荐

    Python语言学习、人工智能研究等

    字符串操作和常用方法 函数定义与调用 模块和包的使用 2. 面向对象编程(OOP) 类和对象的概念 属性和方法 构造函数和初始化方法 继承与多态 封装和访问控制 类的特殊方法(如 __str__、__init__等) 3. 文件操作 ...

    java常用代码

    工程简单的介绍了java常用类,并用这些类进行一些简单的操作 让初学者更好的了解java这门语言的特性。...--课程包括了java SE的大部分常用类及其简单用法 如果你对java,android感兴趣,都可以加入到技术群 326786390

    .net知识以及常用热点面试题集合

    .NET 5 System.Text.Json的用法详解.html .NET 5 带来的新特性 [MemberNotNull] 与 [MemberNotNullWhen].html .NET 5 中的正则引擎性能改进(翻译).html .NET 5(.net core)会影响兼容性的变更.html .NET 5.0 RC2 ...

    基于SpringBoot编写的RESTFul API,使用HTTP状态码与JSON作为响应规范+源代码+文档说明

    本项目可用于快速搭建基于springBoot的RESTFul API服务,同时集成了swagger作为接口的在线文档与调试工具,数据交互格式建议是JSON格式。 ## 增强理解 [Spring Boot集成swagger2生成接口文档]...

    node.js::hammer: node.js常用的基础方法汇总

    @hai2007/nodejs - :hammer: node.js常用的基础方法汇总 Issues 使用的时候遇到任何问题或有好的建议,请点击进入! How to use? 首先,这是一个辅助你开发node.js脚本的东西(比如对webpack或rollup等打包的补充)...

    Spring Boot & MyBatis种子项目,用于快速构建中小型API、RESTful API项目

    - 常用基础方法抽象封装 - 使用Druid Spring Boot Starter 集成Druid数据库连接池与监控 - 使用FastJsonHttpMessageConverter,提高JSON序列化速度 - 集成MyBatis、通用Mapper插件、PageHelper分页插件,实现单表...

    基于mapper插件编写的可定制代码生成基本框架(springboot)

    常用基础方法抽象封装 Controller、service、dao层基类抽取。 常用工具类集成 使用FastJsonHttpMessageConverter,提高JSON序列化速度 集成MyBatis、通用Mapper插件、PageHelper分页插件,实现单表业务零...

    ExtJS5-一个简洁完整的后台管理系统入门实例

    4、通过实现角色管理、用户管理两个基础的功能模块,演示了Viewport、Container、Panel、TreePanel、Grid、Window、Form等常用组件的用法,以及border、column、form、fit、hbox等常用布局方式; 5、通过自定义一个...

    基于ExtJS3的后台管理系统模板

    3、通过实现角色管理、用户管理、部门管理三个基础的功能模块,演示了Viewport、Container、Panel、Grid、Window、Form、Tree等常用组件的用法,以及border、column、form、fit、accordion、hbox等常用布局方式;...

    编程狂人第九期(2014-1-20)

    Android 学习笔记之 SQLite基础用法 如何充分利用 Windows Phone 高清屏幕 【cocos2d-x 手游研发----博彩大转盘】 后端架构 回顾2013:HBase的提升与挑战 memcached(十七)协议命令格式 nginx大流量负载调优 12306...

    狂神说上课笔记未删减 Java基础到技术升级

    2、JavaSE:基础语法 3、JavaSE:流程控制 4、JavaSE:方法 5、JavaSE:数组 6、JavaSE:面向对象 7、JavaSE:异常机制 8、JavaSE:常用类 9、JavaSE:集合框架 10、JavaSE:IO流 11、JavaSE:多线程 12、...

    C#基础类库

    C#基础类库 1.Chart图形 Assistant创建显示图像的标签和文件 OWCChart统计图的封装类 2.Cookie&Session;&Cache;缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等...

    vscode-xrest-client:使用简单Javascript对象在Visual Studio Code中进行灵活的REST API测试。 就像编写JSON一样!

    自动导入*.rc.js (常用配置文件) 加载保存的响应从响应中获取数据(例如,身份验证承载) 支持图像,带有可见的标题Javascript的所有功能,可满足非常复杂的请求要求唯一的要求是使用特定的文件扩展名。...

    Java 知识汇总(资源,工具,笔记,源码,文章,文档分类整理).zip

    常用的json解析框架的使用; - **Java进阶** 设计模式;多线程,虚拟机,性能优化技巧,反射,复杂算法(红黑树,贪心,动态规划等),网络通信; ## 功能模块 - 【Okhttp接口测试】在[com.gradle.http.uas](/tree/master...

    原创-javascript服务器交互型可编辑表格和我的js常用库

    * 自定义javascript常用基础库 author zhang_jhai 创建时间 2010/04/10 最后修改时间 2010/05/03 * version 2.0 */ // Base库基础类 BaseJs = function() { // 判断浏览器类型 userAgent = navigator....

    C#基类库大全下载--苏飞版

    这主要是为了让大家练手的,他使用C#代 码的方法实现了对数据的 备份,还原,分离,附加,添加和删除用户等操作 帮助类 1.最新的Functions 类 这里面实现了很多的帮助方法,比如正则验证,加密,解密,MD5加密,...

    SpringBoot快速构建

    - 常用基础方法抽象封装 - 使用Druid Spring Boot Starter 集成Druid数据库连接池与监控 - 使用FastJsonHttpMessageConverter,提高JSON序列化速度 - 集成MyBatis、通用Mapper插件、PageHelper分页插件,实现单表...

    jquery插件使用方法大全

    这些都是较常用的方法,get和post用法一样。第一个参数是异步请求的url,第二个为参数,第三个回调方法。 (4)的方法会在指定的Dom对象上绑定响应ajax执行的事件。 (5)同步加载数据。发送请求时锁住浏览器。需要...

Global site tag (gtag.js) - Google Analytics