java读取json文本及jsonArray的使用

2022-07-27,,,,

java里如何使用json(菜鸟初体验)

  • 对json的简单认知
    • json的文件读取及jsonArray的使用
      • 如何在intelliji里使用json

对json的简单认知

下面的json语言特点是摘自廖雪峰的官方网站
哈哈继续安利。
JSON作为数据传输的格式,有几个显著的优点:

JSON只允许使用UTF-8编码,不存在编码问题;
JSON只允许使用双引号作为key,特殊字符用\转义,格式简单;
浏览器内置JSON支持,如果把数据用JSON发送给浏览器,可以用JavaScript直接处理。
因此,JSON适合表示层次结构,因为它格式简单,仅支持以下几种数据类型:

键值对:{“key”: value}
数组:[1, 2, 3]
字符串:“abc”
数值(整数和浮点数):12.34
布尔值:true或false
空值:null

json的文件读取及jsonArray的使用

[
{
“formmer”: “程序设计”,
“latter”: “汇编语言”,
“grade1”: “4”,
“geade2”: “3”
},
{
“formmer”: “程序设计”,
“latter”: “离散数学”,
“grade1”: “4”,
“geade2”: “3”
},
{
“formmer”: “程序设计”,
“latter”: “数据结构”,
“grade1”: “4”,
“geade2”: “3”
}
]
就拿我最近用到的json文件作例子吧,
这个json文件里其实只有两类对象JSONArrayJSONObject,只不过进行了简单的嵌套。
最外面的中括号包着的这个整体可以看作成一个JSONArray对象,里面的每一个大括号里包的整体都是一个JSONObject对象,就像是一个JSONObject的顺序表一样。没错,JSONArray.getJSONObject[0]就是
{
“formmer”: “程序设计”,
“latter”: “汇编语言”,
“grade1”: “4”,
“geade2”: “3”
},

 public static void main(String args[]) {
        System.out.println(getJson());//getJson()是将json文件转换成字符串的定义方法。
        JSONArray getJsonArray=JSON.parseArray(getJson());//接受一个json字符串初始化成JSONArray实例
        JSONObject obj=getJsonArray.getJSONObject(0);//JSONArray的第一个元素
        String obj2=obj.getString("formmer");//重点来了!!!
        int a=obj.getIntValue("grade1");
        System.out.println(obj2+": "+a);
    }


运行结果
注意到
obj2=obj.getString(“formmer”)
每一个JSONObject对象都是由一组或多组键值对组成的。比如在这里"formmer"、“grade1”就是键(注意带引号),而对应的“程序设计”和3就是它们的值。
看到这里之后推荐几篇博客,很感谢这几位博主,看到他们之后才初步搞懂。
JSON的三种解析方式

如何在intelliji里使用json

import java.io.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class main {
    public static String getJson() {
        String jsonStr = "";
        try {
            File file = new File("/Users/robin/IdeaProjects/priorityQueue/src/CurriculumInformation.json");
            FileReader fileReader = new FileReader(file);
            Reader reader = new InputStreamReader(new FileInputStream(file),"Utf-8");
            int ch = 0;
            StringBuffer sb = new StringBuffer();
            while ((ch = reader.read()) != -1) {
                sb.append((char) ch);
            }
            fileReader.close();
            reader.close();
            jsonStr = sb.toString();
            return jsonStr;
        } catch (Exception e) {
            return null;
        }
    }
    public static void main(String args[]) {
        System.out.println(getJson());//getJson()是将json文件转换成字符串的定义方法。
        JSONArray getJsonArray=JSON.parseArray(getJson());//接受一个json字符串初始化成JSONArray实例
        JSONObject obj=getJsonArray.getJSONObject(0);//JSONArray的第一个元素
        String obj2=obj.getString("formmer");//重点来了!!!
        int a=obj.getIntValue("grade1");
        System.out.println(obj2+": "+a);
    }
}

java使用json可以使用maven,也可以不使用,去下载相应的jar文件,笔者就是因为不了解maven怕耽误太多时间,选择fastjson包。如果以后有时间学到maven,笔者也会更新方法的,现在鉴于只是一只菜鸟,还是算了吧!
不通过maven导入fastjson
fastjson的介绍
java读取json二维数组

以下就是笔者昨天的所有收获了,十分青涩,第3篇了!

本文地址:https://blog.csdn.net/Maystyle/article/details/109838156

《java读取json文本及jsonArray的使用.doc》

下载本文的Word格式文档,以方便收藏与打印。