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);

 

 

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值