JSON入门Java篇-7-JSON总结

      到这里,我们学习了如何用例JSON-JAVA来构建JSON数据和解析JSON。其实整个过程,看起来,使用也不是很方便是不是。确实,基于json.org的解析和构造看起来很原始,但是确实需要我去了解和学习。在前面解析的基础之上,这里插入一个经常使用的小技巧。

1.解析之前,先进行为空判断

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.json.JSONArray;
import org.json.JSONObject;

public class ReadJSON {

	public static void main(String[] args) throws IOException {
		
		//获取文件路径并加载
		File file = new File("./test.json");
		
		//通过 commons-io 里方法读取文件内容
		String content = FileUtils.readFileToString(file, "utf8");
		//转换JSON对象进行处理
		JSONObject jsonObject = new JSONObject(content);
		
		if(jsonObject.isNull("address")){
			
			System.out.println("该JSON文件不存在address这个key字段");
		}
		
		if(!jsonObject.isNull("name")){
			//根据getString()获取姓名
			System.out.println("姓名是:"+jsonObject.getString("name"));
			
		}
		//根据getDouble()获取年龄
		System.out.println("年龄:"+jsonObject.getDouble("age"));
		//获取是否有女朋友
		System.out.println("是否有女朋友:"+jsonObject.getBoolean("has_girlfriend"));
		
		//把json数组对象转换成Java的数组对象
		JSONArray jsonarray = jsonObject.getJSONArray("major");
		//变量专业
		for(int i=0; i<jsonarray.length(); i++){
			
			System.out.println("专业-"+(i+1)+":"+ jsonarray.get(i));
		}
		
	}

}
       上面插入了为空和不为空判断。当我们想根据一个key来获取对应的value的时候,最后先进行下不为空的判断,然后才去获取。毕竟JSON数据有时候来源网络,可能存在字段丢失或者不准确的情况,如果本来就不准确,那么获取剩下的信息就没有意义。

总结:

       利用json.org构造JSON对象和commons-io进行解析JSON数据就介绍到这里。其实关于JSON解析,开源工具还有其他的,例如Google的GSON,和阿里巴巴的Fast json。这里举例阿里巴巴的Fast json在github上的地址:https://github.com/alibaba/fastjson,这个github有1万多个star,说明还是很出名的。接下来后面的文章,我打算介绍阿里巴巴的fast json的基本使用,你会发现要比json.org要简单很方便,强大很多。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值