java读取json文本及jsonArray的使用
java里如何使用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文件里其实只有两类对象JSONArray和JSONObject,只不过进行了简单的嵌套。
最外面的中括号包着的这个整体可以看作成一个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
上一篇: 01学习 JS面向对象笔记