net.sf.json.JSONObject 获取指定类型数据, 不应该异常处理

本文讨论了在使用 net.sf.json.JSONObject 获取指定类型数据时遇到的异常问题。作者指出,虽然get(Object)方法在键不存在时返回null,但get(String)等方法在键错误时会抛出异常,这一行为在作者看来并不合理。建议开发者考虑使用阿里巴巴的fastjson库,其在类似情况下会返回null而不会中断程序执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为xml太复杂, 所以现在简单的服务 都用json传送, 性能高,容量小, 速度快. 现在不管是阿里的云, 还是企鹅的微信支付 都是这样.

现在流行的json解释包有几种, 阿里的, net.sf, org的, 因为代码里都用过, 所以来吐下net.sf的烦之处: 异常.

看下面代码:

package com.test;

import net.sf.json.JSONObject;

public class DemoJson {

	public static void main(String[] args) {
		String jsonStr = "{\"bzRate\":\"99.4\",\"goodQtyz\":\"1100\",\"gxRate\":\"99.64\",\"tranDate\":\"2019061301\",\"workQtyz\":\"1104\"}";
		JSONObject jsonObj = JSONObject.fromObject(jsonStr);
		
		//正常读取对象, 没有返回 null, 不产生异常
		Object tranDate = jsonObj.get("tranDate");
		Object tranDate2 = jsonObj.get("tranDate2");
		//结果: tranDate = 2019061301, tranDate2 = null
		System.out.println("tranDate = "+tranDate +", tranDate2 = "+tranDate2);
		
		//按类型读取, 因为tranDate2 没有, 则产生异常, 这一点不敢同意 net.sf 大师的写法: 正确的方式应返加  null 对象
		String tranDateStr = jsonObj.getString("tranDate");
		String tranDateStr2 = jsonObj.getString("tranDate2");
		//结果: 异常
		System.out.println("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值