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

运行结果

json java 格式化 java json数据格式_System


注意到

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导入fastjsonfastjson的介绍
java读取json二维数组

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